数组 vba 去除空值
时间: 2024-09-23 07:07:19 浏览: 95
在VBA(Visual Basic for Applications)中,数组是一种数据结构,用于存储一系列相同类型的元素。如果你想要从数组中去除所有空值(例如,空字符串、零值或Null),可以采取几种方法:
1. 使用`Filter`函数:这个函数可以根据指定的条件过滤数组。你可以创建一个新的数组,只包含非空元素。
```vba
Sub RemoveEmptyEntries()
Dim originalArray() As Variant '假设这是你的原始数组
Dim newArray() As Variant
Dim i As Long
For i = LBound(originalArray) To UBound(originalArray)
If Not IsEmpty(originalArray(i)) Then '检查是否为空
ReDim Preserve newArray(LBound(newArray) To UBound(newArray) + 1) '添加元素到新数组
newArray(UBound(newArray)) = originalArray(i) '将非空元素添加进去
End If
Next i
'现在 newArray 包含了原数组中的非空元素
End Sub
```
2. 循环遍历并条件判断:直接在循环中检查每个元素,如果非空则复制到新的数组。
```vba
Sub RemoveEmptyEntriesAlternative()
Dim originalArray() As Variant
Dim newArray() As Variant
Dim i As Long
ReDim newArray(0 To 0) '预先分配空间防止动态扩容时的效率损失
For i = LBound(originalArray) To UBound(originalArray)
If Not IsEmpty(originalArray(i)) Then
ReDim Preserve newArray(LBound(newArray) To UBound(newArray) + 1) '每次找到非空元素就扩大容量
newArray(UBound(newArray)) = originalArray(i)
End If
Next i
'newArray 现在也包含了非空元素
End Sub
```
完成以上操作后,`newArray` 就是你去除了空值后的数组。
阅读全文