【问题标题】:C# Excel add-in exception when formula bar is selected and accessing Range.Value选择公式栏并访问 Range.Value 时的 C# Excel 加载项异常
【发布时间】:2012-02-02 01:54:06
【问题描述】:

我刚开始使用带有 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";
      }
}

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

谁能告知发生了什么以及如何处理此异常?谢谢你。

【问题讨论】:

  • 有什么异常?哪条线抛出它?
  • 我不知道......这就是我要问的......“HRESULT 异常:0x800A03EC”
  • 谢谢,但标记的答案没有帮助。我觉得更重要的是我也想了解问题,而不是一味的规避,从而彻底避免。

标签: vsto add-in excel-2010


【解决方案1】:

例外是因为您无法在公式编辑模式下运行代码。你也不能做很多其他的事情。例如,单击编辑栏并单击Ctrl-N,这通常会打开一个新工作簿。什么都没有发生。

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-06-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多