📜  vba 删除数组元素 - VBA (1)

📅  最后修改于: 2023-12-03 15:20:57.617000             🧑  作者: Mango

VBA:删除数组元素

在 VBA 中,可以通过以下方式删除数组元素:

Sub RemoveFromArray()
    Dim arr() As String
    arr = Split("apple,banana,cherry", ",")
    
    '删除第二个元素(banana)
    For i = 1 To UBound(arr)
        If arr(i) = "banana" Then
            arr(i) = ""
        End If
    Next i
    
    '重新调整数组大小
    arr = Filter(arr, "")
    
    '输出删除后的数组元素
    For i = 0 To UBound(arr)
        Debug.Print arr(i)
    Next i
End Sub

在上面的示例中,我们首先将字符串 "apple,banana,cherry" 拆分为一个名为 arr 的字符串数组。然后,我们使用 For 循环遍历整个数组,查找要删除的元素("banana")。找到后,我们将该元素的值设置为空字符串,从而删除它。

接下来,我们使用 Filter 函数来过滤掉所有空字符串元素。最后,我们使用另一个 For 循环显示已删除的数组元素。

请注意,使用 Filter 函数会调整数组的大小,因此我们必须将调整后的数组赋回给原来的数组变量。

如果要删除数组中的所有元素,我们可以使用 Erase 语句:

Sub RemoveAllFromArray()
    Dim arr() As String
    arr = Split("apple,banana,cherry", ",")
    
    '删除所有元素
    Erase arr
    
    '输出数组元素
    For i = 0 To UBound(arr)
        Debug.Print arr(i)
    Next i
End Sub

上面的示例会将 arr 数组中的所有元素删除,并尝试遍历该数组来显示已删除的元素。结果会导致“下标越界”错误,因为已删除所有元素并且数组变为空。

总结:

  • VBA 中使用 For 循环和 Filter 函数删除数组元素。
  • 删除元素后,使用 Filter 函数调整数组大小。
  • 要删除数组中的所有元素,请使用 Erase 语句。