vba循环遍历数组,将值存储到arrayi中



我有一些数据,存储在像这样的数组中

Dim arrA, arrB, arrC, arrAi, arrBi
Dim i as integer, x as integer
for i = 1 to 100
if cells(i,1).value = "criteria" then ' just add value to array when it meets some criteria
x = x + 1
arrA(x) = cells(i,1).value
arrB(x) = cells(i,2).value
arrC(x) = cells(i,3).value
end if
next i
redim preserve arrA(1 to x)
redim preserve arrB(1 to x)
redim preserve arrC(1 to x)

数据看起来像

arrA:26.1 40.2 80.3 26.0 41.3 78.7 25.8 40.8 80.0

arrB:10 11 10 66 67 64 32 33

arrC:1 2 3 1 2 3 2 3

由于arrA 26.1、26.0、25.8(位置1、4、7(中的值属于组1(参考同一位置的arrC中的值(,我想将26.1 26.0 25.8存储到arrAi,将10 66 32存储到arrBi,以供后续计算。

如何循环3个数组并将值存储到另一个数组,如上所述?

提前谢谢。

请尝试下一种方法:

Sub handleArraysFromArrays()
'your existing code...
'but you fistly must declare
Dim arrA(1 To 100), arrB(1 To 100), arrC(1 To 100)
'....
'your existing code
'...
Dim k As Long, kk As Long

ReDim arrAi(1 To UBound(arrA))
ReDim arrBi(1 To UBound(arrA))
For i = 1 To UBound(arrC)
If arrC(i, 1) = 1 Then k = k + 1: arrAi(k, 1) = arrA(i, 1)
If arrC(i, 1) = 2 Then kk = kk + 1: arrBi(kk, 1) = arrA(i, 1)
Next i
ReDim Preserve arrAi(1 To k): ReDim Preserve arrBi(1 To kk)
Debug.Print UBound(arrAi), UBound(arrBi)
End Sub

最新更新