选择公式栏并访问Range.Value时,C#Excel加载项异常

时间:2012-02-02 01:54:06

标签: vsto add-in excel-2010

我刚刚开始使用带有VSTO的Excel 2010外接程序,并且很快被此代码生成的异常所困扰:

public void DoIt()
{
      Excel.Range selectedRange = Application.Selection as Excel.Range;
      if (selectedRange == null)
      {
           System.Windows.Forms.MessageBox.Show("Nothing selected");
      }
      else if(selectedRange.Cells.Count > 0)
      {
           selectedRange[1, 1].Value = "=2+3"; // exception on this line.
          selectedRange[selectedRange.Rows.Count, selectedRange.Columns.Count].Value = "Birthday";
      }
}

首先单击工作表中的单个单元格,然后单击公式栏,然后运行上面的功能(我通过功能区按钮调用它),可以重现异常。

有人可以告知发生了什么以及如何处理此异常吗?谢谢你。

1 个答案:

答案 0 :(得分:2)

异常是因为在公式编辑模式下无法运行代码。你也做不了别的事情。例如,单击公式栏并单击Ctrl-N,这通常会打开一个新工作簿。没有任何事情发生。

我认为您需要捕获异常并退出Sub,这将模仿正常的Excel操作。

理想情况下,您需要禁用该按钮,就像大多数Excel功能区按钮处于公式编辑模式时一样。我不知道这是否可能。