配列の値を異なる長さの別の配列に割り当てることができるコードを作成したいとします。これは私がこれまで持っていたものです。ある配列の値を別の配列(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)'を持っていれば '(4、2、8、9)'のように4つの要素しか持たない 'B ' – trincot
あなたはコードが少し奇妙です:)私はちょうど最終的な目標が何であるか分かりません。あなたがすること:最初のループでは、0でない値を数えます。結果は 'n = 3'になります。その後、2つのネストされたループがあります。最初のものは3回実行され、2番目のもの(ネストされたもの)は0ではなくAの値がBの配列に代入されますが、最終結果は常に同じです。BのAの最後の値はBに割り当てられません0、従って '7'、あなたはどこでも7で終わります。あなたは真剣に、期待される結果のデータで、あなたが望むものを詳述する必要があります。 –