循环浏览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