【问题标题】:Read the ActiveCell content in Excel using VSTO使用 VSTO 读取 Excel 中的 ActiveCell 内容
【发布时间】:2010-12-18 13:10:32
【问题描述】:

我正在尝试从 Excel 加载项中读取 ActiveCell,但距离不远。有人有什么想法吗?

Excel.Window W = this.Application.ActiveWindow as Excel.Window;
Excel.Range R = W.ActiveCell as Excel.Range;
MessageBox.Show(R.Value2.ToString());

最后一行抛出的异常是:-

无法获取字段或调用方法 在类型的实例上 'Microsoft.Office.Interop.Excel.Range' 因为它是远程的代理 对象。

我试过 .Value,它说:-

属性、索引器或事件“值”是 语言不支持;尝试 直接调用访问器方法 'Microsoft.Office.Interop.Excel.Range.get_Value(object)' 要么 'Microsoft.Office.Interop.Excel.Range.set_Value(对象, 对象)'

在尝试 get_Value() 时,我再次得到初始异常。

无法获取字段或调用方法 在类型的实例上 'Microsoft.Office.Interop.Excel.Range' 因为它是远程的代理 对象。

有什么想法吗?

干杯,

菲尔。

【问题讨论】:

    标签: c# excel vsto add-in


    【解决方案1】:

    R.Text.ToString();将从单元格中获取文本

    【讨论】:

      【解决方案2】:

      不要使用活动窗口。修改您的代码如下 Excel.Range R = this.Application.ActiveCell as Excel.Range; 如果(R!= null) MessageBox.Show(R.Value2);

      注意:如果用户没有在活动工作表中选择单元格,则 ActiveCell 可以为空。

      【讨论】:

        【解决方案3】:

        这个有用吗:http://social.msdn.microsoft.com/Forums/en-US/vsto/thread/f21c7cf4-fbfd-4496-a593-781eb751d580

        它建议关闭代理以进行调试,暗示您看到的错误消息可能正在掩盖较低级别的 COM 错误。

        【讨论】:

          猜你喜欢
          • 2020-07-08
          • 1970-01-01
          • 1970-01-01
          • 2021-03-02
          • 2016-08-16
          • 1970-01-01
          • 1970-01-01
          • 2011-03-19
          • 1970-01-01
          相关资源
          最近更新 更多