我刚刚开始使用带有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";
}
}
首先单击工作表中的单个单元格,然后单击公式栏,然后运行上面的功能(我通过功能区按钮调用它),可以重现异常。
有人可以告知发生了什么以及如何处理此异常吗?谢谢你。
答案 0 :(得分:2)
异常是因为在公式编辑模式下无法运行代码。你也做不了别的事情。例如,单击公式栏并单击Ctrl-N
,这通常会打开一个新工作簿。没有任何事情发生。
我认为您需要捕获异常并退出Sub,这将模仿正常的Excel操作。
理想情况下,您需要禁用该按钮,就像大多数Excel功能区按钮处于公式编辑模式时一样。我不知道这是否可能。