使用VSTO读取Excel中的ActiveCell内容

我正在尝试从Excel加载项中读取ActiveCell,但没有得到太多的帮助。 任何任何想法?

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

抛出最后一行的exception是:

无法获取types为“Microsoft.Office.Interop.Excel.Range”的实例的字段或调用方法,因为它是远程对象的代理。

我试过。值,它说:

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

在尝试get_Value()我再次得到初始的exception。

无法获取types为“Microsoft.Office.Interop.Excel.Range”的实例的字段或调用方法,因为它是远程对象的代理。

有任何想法吗?

干杯,

菲尔。

R.Text.ToString(); 会从你的单元格中得到你的文本

不要使用ActiveWindow。 修改你的代码如下Excel.Range R = this.Application.ActiveCell as Excel.Range; if(R!= null)MessageBox.Show(R.Value2);

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

这是什么用: http : //social.msdn.microsoft.com/Forums/en-US/vsto/thread/f21c7cf4-fbfd-4496-a593-781eb751d580

它build议closures代理以进行debugging,暗示您看到的错误消息可能会掩盖较低级别的COM错误。