Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 使用vba删除特定的名称范围_Excel_Vba - Fatal编程技术网

Excel 使用vba删除特定的名称范围

Excel 使用vba删除特定的名称范围,excel,vba,Excel,Vba,我有一个包含少量项的数组,每个项表示一个名称范围。我正在尝试编写一个代码来删除仅存在于该数组中的命名范围。例子: [Arr1]={水果、蔬菜、朋友、班级} 我想按Arr1中元素的名称删除所有名称范围。Arr1可以在不同的时间点具有不同的元素 谢谢 代码应区分要删除的名称的范围。它还应该考虑到名称不存在的可能性。最后,由于数组的目的是具有不同的内容,因此不能在执行过程中指定它。因此,我下面的代码有一个指定数组和作用域的调用过程,以及一个在找不到名称时不会崩溃的执行过程 Sub DeleteName

我有一个包含少量项的数组,每个项表示一个名称范围。我正在尝试编写一个代码来删除仅存在于该数组中的命名范围。例子: [Arr1]={水果、蔬菜、朋友、班级}

我想按Arr1中元素的名称删除所有名称范围。Arr1可以在不同的时间点具有不同的元素


谢谢

代码应区分要删除的名称的范围。它还应该考虑到名称不存在的可能性。最后,由于数组的目的是具有不同的内容,因此不能在执行过程中指定它。因此,我下面的代码有一个指定数组和作用域的调用过程,以及一个在找不到名称时不会崩溃的执行过程

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

要完全删除命名范围还是只删除名称?完全删除名称范围