VBA多维数组a循环筛选满足条件的数放入数组b中
时间: 2024-10-27 13:09:23 浏览: 45
VBA利用CopyMemory函数复制数组【二维数组转一维数组】.xlsm
在VBA中,如果你有一个多维数组`a`,你想通过循环筛选出满足特定条件的元素,并将它们放入另一个数组`b`中,你可以这样做:
```vba
Sub FilterArray()
Dim a() As Variant '假设a是一个多维数组
Dim b() As Variant '目标数组b
Dim i As Long, j As Long, k As Long '索引变量
Dim condition As Boolean '用于判断条件的临时变量
'初始化数组a和b的大小
ReDim a(1 To YourArrayRows, 1 To YourArrayColumns)
ReDim b(1 To 0) '初始时b为空数组,后续根据需要动态调整
'遍历a数组
For i = LBound(a, 1) To UBound(a, 1)
For j = LBound(a, 2) To UBound(a, 2)
'这里假设条件是对当前元素应用的,比如元素大于5
condition = a(i, j) > 5
'如果满足条件,将值添加到b数组
If condition Then
ReDim Preserve b(k + 1) 'ReDim Preserve保留原有大小并追加一维
b(k + 1) = a(i, j)
k = k + 1 '更新k以便下一次添加
End If
Next j
Next i
'最后可能需要调整b数组的大小
ReDim b(1 To k) '根据实际存储的元素数量重新设置b数组大小
End Sub
```
在这个例子中,你需要替换`YourArrayRows`和`YourArrayColumns`为`a`的实际行数和列数。这个过程会创建一个新的数组`b`,其中只包含满足条件的元素。
阅读全文