Excel 使用vba删除特定的名称范围
我有一个包含少量项的数组,每个项表示一个名称范围。我正在尝试编写一个代码来删除仅存在于该数组中的命名范围。例子: [Arr1]={水果、蔬菜、朋友、班级} 我想按Arr1中元素的名称删除所有名称范围。Arr1可以在不同的时间点具有不同的元素Excel 使用vba删除特定的名称范围,excel,vba,Excel,Vba,我有一个包含少量项的数组,每个项表示一个名称范围。我正在尝试编写一个代码来删除仅存在于该数组中的命名范围。例子: [Arr1]={水果、蔬菜、朋友、班级} 我想按Arr1中元素的名称删除所有名称范围。Arr1可以在不同的时间点具有不同的元素 谢谢 代码应区分要删除的名称的范围。它还应该考虑到名称不存在的可能性。最后,由于数组的目的是具有不同的内容,因此不能在执行过程中指定它。因此,我下面的代码有一个指定数组和作用域的调用过程,以及一个在找不到名称时不会崩溃的执行过程 Sub DeleteName
谢谢 代码应区分要删除的名称的范围。它还应该考虑到名称不存在的可能性。最后,由于数组的目的是具有不同的内容,因此不能在执行过程中指定它。因此,我下面的代码有一个指定数组和作用域的调用过程,以及一个在找不到名称时不会崩溃的执行过程
Sub DeleteNamedRanges()
Dim all_names, n
all_names = Array("Fruits", "Vegetables", "friends", "Classes")
For Each n In all_names
Names(n).Delete
Next
End Sub
Sub CallDeleteNamedRanges()
Dim Scope As Object
Dim Arr() As String
Set Scope = ThisWorkbook
' ' you can specify a workbook, a worksheet, a table etc.
' ' For example:-
' Set Scope = ThisWorkbook.Worksheets("Sheet1")
Arr = Split("Fruits,Vegetables,Friends,Classes", ",")
DeleteNamedRanges Arr, Scope
End Sub
Private Sub DeleteNamedRanges(Arr() As String, _
Scope As Object)
Dim i As Integer
For i = 0 To UBound(Arr)
' an error will occur if the name doesn't exist
On Error Resume Next
Scope.Names(Arr(i)).Delete
Next i
Err.Clear
End Sub
要完全删除命名范围还是只删除名称?完全删除名称范围