我想創建一段代碼,讓我從一個數組中分配一個值到另一個長度不同的數組。這是我迄今爲止所擁有的。如何在一個數組中創建另一個數組(VBA)中的值?
A(1) = 0
A(2) = 0
A(3) = 6
A(4) = 5
A(5) = 7
n = 0
For i = 1 To 5
If A(i) <> 0 Then
n = n + 1
End If
Next i
ReDim B(1 To n) As Integer
For j = 1 To n
For i = 1 To 5
If A(i) <> 0 Then
B(j) = A(i)
End If
Next i
Next j
MsgBox B(2)
此刻返回7,而它應該返回5,B中的所有值都是7.我怎樣才能讓這段代碼運行?
你的代碼似乎暗示你不想複製任何0值。所以如果你有一個數組'(4,2,0,8,9)''你想要'B'只有4個元素,比如'(4,2,8,9)'? – trincot
你的代碼有點怪怪的:)我只是不明白最終目標是什麼。你做什麼:在第一個循環中你計算的值不是0,它應該導致'n = 3'。之後你有2個嵌套循環。第一個將運行3次,第二個(嵌套)爲B數組賦值A中不爲0的值。但最終結果總是相同的:它會將B的最後一個值賦給B 0,因此'7',你到處都是7。你真的需要詳細說明你想要的東西,以及預期結果的數據。 –