我需要遍历表单中的所有命名区域。
我目前这样做:循环遍历Excel工作表中的所有命名区域
For Each nm In ActiveWorkbook.Names
的问题是,这片拥有全球范围内与表范围的名称。
此循环仅获取全局范围。
我已经试过:
For Each nm In Activeworkbook.Sheets(1).Names
,但不能使它工作。此循环也只能获取具有全局范围的命名范围。想法?
我知道最好的解决办法是改变名字的范围,但我做不到。
我需要遍历表单中的所有命名区域。
我目前这样做:循环遍历Excel工作表中的所有命名区域
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)
无法复制您的问题。没有麻烦地获得本地和全球名称。 – ZAT 2014-12-01 17:59:36