Vba 循环浏览Excel工作表中的所有命名范围
我需要在工作表中的所有命名范围中循环。Vba 循环浏览Excel工作表中的所有命名范围,vba,excel,Vba,Excel,我需要在工作表中的所有命名范围中循环。 我目前正在这样做: For Each nm In ActiveWorkbook.Names 问题是此工作表的名称具有全局范围和工作表范围。 此循环仅获取全局范围。 我试过: For Each nm In Activeworkbook.Sheets(1).Names 但无法使它工作。此循环还仅获取具有全局范围的命名范围。想法? 我知道最好的解决办法是更改名称的范围,但我不能这样做。可以让它在今天起作用。在这里发帖,我把我的问题简单多了,但这不是一个好主意
我目前正在这样做:
For Each nm In ActiveWorkbook.Names
问题是此工作表的名称具有全局范围和工作表范围。此循环仅获取全局范围。
我试过:
For Each nm In Activeworkbook.Sheets(1).Names
但无法使它工作。此循环还仅获取具有全局范围的命名范围。想法?我知道最好的解决办法是更改名称的范围,但我不能这样做。可以让它在今天起作用。在这里发帖,我把我的问题简单多了,但这不是一个好主意
Dim intCounter As Integer
Dim nmTemp As Name
For intCounter = 1 To ActiveWorkbook.Names.Count
MsgBox ActiveWorkbook.Names(intCounter)
Next intCounter
我真正要做的是从工作表中导入一些值(使用application.getopenfilename选择,并使用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)
无法复制您的问题。轻松获得本地和全局名称。