vba

vba数组怎么删除某个元素

小亿
550
2023-11-23 21:00:17
栏目: 编程语言

要删除一个VBA数组中的特定元素,您可以使用以下方法之一:

  1. 使用ReDim语句重新定义数组的大小,并将要删除的元素跳过。这将创建一个新的数组,不包含要删除的元素。以下是一个示例代码:
Sub DeleteElementFromArray()
    Dim arr() As Variant
    Dim i As Integer
    Dim elementToDelete As Variant
    Dim newArr() As Variant
    
    ' 初始化数组
    arr = Array("Apple", "Banana", "Orange", "Mango")
    
    ' 要删除的元素
    elementToDelete = "Banana"
    
    ' 遍历数组,创建新的数组,跳过要删除的元素
    ReDim newArr(LBound(arr) To UBound(arr) - 1)
    For i = LBound(arr) To UBound(arr)
        If arr(i) <> elementToDelete Then
            newArr(i - IIf(i > LBound(arr), 1, 0)) = arr(i)
        End If
    Next i
    
    ' 输出结果
    For i = LBound(newArr) To UBound(newArr)
        Debug.Print newArr(i)
    Next i
End Sub
  1. 使用Filter函数,该函数返回一个新数组,其中包含不包含要删除元素的元素。以下是一个示例代码:
Sub DeleteElementFromArray()
    Dim arr() As Variant
    Dim elementToDelete As Variant
    Dim newArr() As Variant
    
    ' 初始化数组
    arr = Array("Apple", "Banana", "Orange", "Mango")
    
    ' 要删除的元素
    elementToDelete = "Banana"
    
    ' 使用Filter函数创建新的数组,不包含要删除的元素
    newArr = Filter(arr, elementToDelete, False)
    
    ' 输出结果
    Dim i As Integer
    For i = LBound(newArr) To UBound(newArr)
        Debug.Print newArr(i)
    Next i
End Sub

无论使用哪种方法,都可以删除VBA数组中的特定元素。

0
看了该问题的人还看了