循环遍历名称并删除那些不匹配指定模式的名称

时间:2013-03-11 12:51:24

标签: excel-vba foreach named-ranges vba excel

我有一个Excel工作簿,我从其中导入其他几个工作簿中的工作表,然后将这些工作簿中的数据合并到“概述”工作表中。我对vba相当新,所以这个任务花了很长时间,还有很多研究。 但是我有一个问题,我无法解决或找到答案,但我认为如果你知道如何解决应该相当简单。 (所以希望有人在那里。) 问题: 当我导入工作表时,我还导入了许多不需要的命名范围。我试图通过运行删除它们的宏来删除它们而不删除我指定的那些宏,但它对我有效。

非常感谢任何帮助

Sub DeleteNames()

Dim myName As Name

 For Each myName In ThisWorkbook.Names

  If myName <> "Tower" And _
  myName <> "Bird" Then
  myName.Delete
  End If

 Next
End Sub

1 个答案:

答案 0 :(得分:2)

您需要使用名称对象的 namelocal 属性。

试试这个:

Sub DeleteNames()

Dim myName As Name

 For Each myName In ThisWorkbook.Names

  If myName.NameLocal <> "Tower" And myName.NameLocal <> "Bird" Then
    myName.Delete
  End If

 Next
End Sub