【问题标题】:loop through names and delete those not matching specified pattern遍历名称并删除与指定模式不匹配的名称
【发布时间】:2013-03-11 12:51:23
【问题描述】:

我有一个 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

【问题讨论】:

    标签: excel foreach named-ranges vba


    【解决方案1】:

    您需要使用 name 对象的 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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-30
      • 2017-01-03
      • 1970-01-01
      • 2021-09-05
      • 2015-03-22
      相关资源
      最近更新 更多