循环浏览Excel工作表中的所有命名区域
我需要遍历表单中的所有命名范围。
我目前正在这样做:
For Each nm In ActiveWorkbook.Names
问题是这个工作表具有全球范围的名称和工作表范围。
这个循环只获取全局范围。
我试过了:
For Each nm In Activeworkbook.Sheets(1).Names
但不能使其工作。 这个循环也只能得到具有全局作用域的那些命名范围。 想法?
我知道最好的解决办法是改变名字的范围,但我做不到。
可以使它今天工作。 张贴在这里,我让我的问题更简单,但这不是一个好主意。
我真正做的是从工作表中导入一些值(使用application.getopenfilenameselect并使用workbooks.open打开)。 所以我循环遍历这个“导入”工作表中的所有名称,并将这些范围的值导入到我的原始工作表中相同名称的范围中。
for each nm in thisworkbook.names if left(nm.name, 5) = "campo" then 'here I make my copy end if next nm
原来,当你有一个名称与工作表范围,nm.name返回像这样的东西:
nameOfSheet!nameOfField
所以我永远不能进入这个如果。 为了解决我的问题,我用了下面这行。 谢谢大家帮助我。
currentName = Mid(nm.Name, InStr(1, nm.Name, "!") + 1)
Dim intCounter As Integer Dim nmTemp As Name For intCounter = 1 To ActiveWorkbook.Names.Count MsgBox ActiveWorkbook.Names(intCounter) Next intCounter