如何从Office功能区控件中获取所选单元格

3
我希望能从功能区控件中获取活动范围。应该有一种方法可以在需要时仅访问所选单元格,而不是在所有情况下都进行访问。
目前,我是这样做的:
public partial class ThisAddin
{
    private void SheetSelectionChange(object sh, Range target)
    {
        int count = target.Count;

            if (count < 5000) // This is for performance reasons 
            {
                //Set a custom range property in the office ribbon
                Req_Tool.ActiveRange = target; 
            {
    }
}

我觉得这样做很虚弱而且浪费。
首先,每当选择更改时,我的代码都会运行。 其次,无论是否使用,我都有两份选择。

一定有一种更好的方法可以解决这个问题,但我可能忽略了它。

1个回答

6

你可以通过访问 Application 对象的 Selection 属性来访问活动工作表中当前选择的范围。

private void button1_Click(object sender, RibbonControlEventArgs e)
{
    this.ActiveRange = (Excel.Range)Globals.ThisAddIn.Application.Selection;
}

MSDN文档:

这些链接提供了关于Excel应用程序中Selection属性的信息。

以前这只会为我选择集合中的第一个单元格。当我明确指定类型为范围时,我意识到这一点。您必须将其设置为 List <Range> selectedCells 或 var。我认为这值得说明。当然,现在这似乎很明显... 去Stack! - Joe Johnston

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接