我有一个命名单元格在Excel中可以说它的所谓的“myCell” 在C#中,我希望能够访问此单元格并更新其值。 我试过更新的Excel单元格值按名称参考C#
Globals.ThisAddIn.Application.Names.Item(@"myCell").Value = "myValue";
但是,这将引发与消息COM异常 '从HRESULT异常:0x800A03EC'
我有一个命名单元格在Excel中可以说它的所谓的“myCell” 在C#中,我希望能够访问此单元格并更新其值。 我试过更新的Excel单元格值按名称参考C#
Globals.ThisAddIn.Application.Names.Item(@"myCell").Value = "myValue";
但是,这将引发与消息COM异常 '从HRESULT异常:0x800A03EC'
您的问题是:
Globals.ThisAddIn.Application.Names.Item(@"myCell")
不返回一个范围,你可以设置该值,但是是Name类型的对象。您可以使用RefersToRange属性获取表示要查找的单元格的Range,然后设置此对象的值。这一切都转化为这样的事情:
Globals.ThisAddIn.Application.Names.Item(@"myCell").RefersToRange.Value = "myValue";
只需使用Range
对象。命名小区名为Range
,所以这应该工作:
myWorkBook.myWorkSheet.Range["myCell"].Value = "myValue";
P.D.我无法检查这一点,我不确定您是否可以直接将值分配给Range
对象,或者您需要指定Range
中的单元格的偏移量(因为它可以包含多个单元格)。
你也可以试试:(我不记得是否指定范围直接与细胞起作用)
myWorkBook.myWorkSheet.Cells["myCell"].Value = "myValue";
用途:
var cell = myWorksheet.Evaluate("defined_name");
if (cell != null) { cell.Value = "hello"; }
或者:
myWorksheet.Cells.SetValue("defined_name", "hello");
在最后一种情况下,试图建立一个不存在的名字给人的值“来自HRESULT的异常:0x800A03EC”
如果检查null
不起作用,请检查this answer获取int值列表为错误。
两者都给出消息非可调用成员'Microsoft.Office.Interop.Excel._Application.Range'不能像方法一样使用。 – Eddie
@Eddie:糟糕,改变这些'('用'['。编辑我的帖子。 – InBetween
仍然触发相同的消息与[] –