使用VB.Net通过循环访问Excel命名区域



我正在尝试使用visual basic让应用程序循环遍历excel表中的命名范围列表,这是更改公式的第一步。这都是我使用Visual Studio使用的Excel插件的一部分。我有一个基本的循环,它直接来自MS文档。


Dim n As Excel.Name
Dim names As Excel.Names = destStreetEstimates.Names
Dim test_string As String = destStreetEstimates.Name
MsgBox(test_string)
For Each n In names
MsgBox(Prompt:=n.Name)
Next n

这不起作用,当我打开VS调试器(yay(时,com对象似乎被放在了一个列表中,但com对象并没有变成任何有用的东西,我可以循环使用。(boo(。

我是不是错过了什么?我已经浏览了好几次文档,但我在那里读到的任何内容都与我遇到的错误不符。但我还是很绿。

https://learn.microsoft.com/en-us/office/vba/excel/concepts/cells-and-ranges/refer-to-named-ranges

我看过其他指南,其中大多数似乎都在讨论如何以编程方式生成命名范围。我必须从我得到的范围开始,大约是70,虽然我在配置文件中有它们的所有名称,但表中很有可能会有其他我将来没有得到的名称,我的函数也必须在这种情况下工作。

请参阅https://www.thespreadsheetguru.com/blog/the-vba-guide-to-named-ranges

Sub NamedRange_Loop()
'PURPOSE: Named Ranges in the Active Workbook
'SOURCE: www.TheSpreadsheetGuru.com
Dim nm As Name
'Loop through each named range in workbook
For Each nm In ActiveWorkbook.Names
Debug.Print nm.Name, nm.RefersTo
Next nm

'Loop through each named range scoped to a specific worksheet
For Each nm In Worksheets("Sheet1").Names
Debug.Print nm.Name, nm.RefersTo
Next nm
End Sub

最新更新