如何使用 Microsoft.Office.Interop 引用 Visual Studio 中的 Excel NamedRange
How to refer to an Excel NamedRange in Visual Studio using Microsoft.Office.Interop
我正在从 VBA 过渡到 VB.NET 以获得使用 ExcelDNA 的 Excel 插件。在我的代码中,我试图通过名称引用 NamedRange(就像我在 VBA 中所做的那样)以设置该名称的 'ReferTo' 属性。但是,我得到一个错误,它无法将我提供的名称转换为整数。错误:从字符串 "MyNamedRangeName" 到类型 'Integer' 的转换无效。
在下面的代码中,您可以看到错误发生的位置和原因。
Imports Microsoft.Office.Interop
Imports ExcelDna.Integration
Public Class Class1
Sub SetReferToProperty()
Dim ap As Excel.Application = ExcelDnaUtil.Application
Dim wb as Excel.Workbook = ap.ActiveWorkbook
'This is where the error occurs. Apparently, I can't (?) refer to
'the NamedRange by it's name. I need to use it's index.
wb.Names("MyNamedRangeName").RefersTo = 0
'If I use the Index instead (assume it's 1) it will work, but I
'want to use the name instead - not the index.
wb.Names(1).RefersTo = 0
End Sub
End Class
有时(我不确定确切时间)VB.NET 需要您明确指定集合 属性(在本例中为 Items
),而默认索引器不会不工作。所以你需要说:
wb.Names.Item("MyNamedRangeName").RefersTo = 0
请注意,如果您想添加新名称,您会说:
wb.Names.Add("MyNamedRangeName", 0)
我正在从 VBA 过渡到 VB.NET 以获得使用 ExcelDNA 的 Excel 插件。在我的代码中,我试图通过名称引用 NamedRange(就像我在 VBA 中所做的那样)以设置该名称的 'ReferTo' 属性。但是,我得到一个错误,它无法将我提供的名称转换为整数。错误:从字符串 "MyNamedRangeName" 到类型 'Integer' 的转换无效。
在下面的代码中,您可以看到错误发生的位置和原因。
Imports Microsoft.Office.Interop
Imports ExcelDna.Integration
Public Class Class1
Sub SetReferToProperty()
Dim ap As Excel.Application = ExcelDnaUtil.Application
Dim wb as Excel.Workbook = ap.ActiveWorkbook
'This is where the error occurs. Apparently, I can't (?) refer to
'the NamedRange by it's name. I need to use it's index.
wb.Names("MyNamedRangeName").RefersTo = 0
'If I use the Index instead (assume it's 1) it will work, but I
'want to use the name instead - not the index.
wb.Names(1).RefersTo = 0
End Sub
End Class
有时(我不确定确切时间)VB.NET 需要您明确指定集合 属性(在本例中为 Items
),而默认索引器不会不工作。所以你需要说:
wb.Names.Item("MyNamedRangeName").RefersTo = 0
请注意,如果您想添加新名称,您会说:
wb.Names.Add("MyNamedRangeName", 0)