我有一個命名單元格在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
仍然觸發相同的消息與[] –