0
次のコードが動作する理由を教えてください。配列に変数を代入する。 VBAコードが明確でない
Sub MyTest()
Dim arrL1(3) As Variant
Dim arrTemp(10) As Variant
Dim i As Long, j As Long, s As String
Dim varTemp As Variant
For i = LBound(arrL1) To UBound(arrL1)
For j = LBound(arrTemp) To UBound(arrTemp)
arrTemp(j) = i + j
Next
**arrL1(i) = arrTemp**
Next
' 2nd part of the code
**For i = LBound(arrL1) To UBound(arrL1)**
varTemp = arrL1(i)
s = ""
For j = LBound(varTemp) To UBound(varTemp)
s = s & Format(varTemp(j), "@@@")
Next
Debug.Print s
Next
End Sub
私が混乱しているのは、最初の「スター付き」の行です。arrL1(i) = arrTemp
です。私のプロジェクトでこのように配列を割り当てると、私はObject or Application defined error
になります。
もう1つの混乱している行が2番目の部分にあります。つまり、varTemp = arrL1(i)
です。別の変数varTemp
が本当に必要ですか? arrL1(i)
で逃げることはできませんか?
ありがとうございます。
@ Shai Rado:私の配列のサイズは事前にわかっていないので、最初の質問で「Dim b as Variant」と宣言しました。これが問題だろうか? – Lola
@Lolaあなたは 'arrL1(3)'の代わりに 'b'を使いますか? –
@ Shai Rado:申し訳ありませんが、私はより明確にすべきでした。上記のコードは教科書に由来しています。私は自分のコードでそれを使用するのに苦労します。それをリダイムすることなくバリアントに配列(テーブルn x k)を割り当てることは、エラーにつながりませんでした。 – Lola