はこれを試してみてください:
Sub test()
Dim limit As Integer
limit = 3 'get limit from somewhere
Dim Arr1 as Variant
Redim Arr1(0 To 9, 0 To limit) As Variant
Dim Row As Long
For Row = 0 To 3
Arr1(0, Row) = "Zero"
Arr1(1, Row) = "One"
Arr1(2, Row) = "Two"
Arr1(3, Row) = "Three"
Arr1(4, Row) = "Four"
Arr1(5, Row) = "Five"
Arr1(6, Row) = "Six"
Arr1(7, Row) = "Seven"
Arr1(8, Row) = "Eight"
Arr1(9, Row) = "Nine"
Next Row
MsgBox Arr1(0, 0)
End Sub
あなたはすでにあなたの配列がそうちょうど開始時に制限を定義しているしたいの限界を知っています。それ以上のポイントでこれらを再定義する必要はありません。
また、Next Row
はRow=Row+1
と同じことがそうしたくないん両方
更新
あなたはまた、配列
Sub test()
Dim limit As Integer
limit = 3 'get limit from somewhere
Dim Arr1 as Variant
Redim Arr1(0 To 9, 0 To limit) As Variant
Dim numbers As Variant
numbers = Array("Zero", "One", "Two", "Three", "Four", "Five", "Six", "Seven", "Eight", "Nine")
Dim Row As Integer, Col As Integer
For Row = 0 To 3
For Col = 0 To 9
Arr1(Col, Row) = numbers(Col)
Next Col
Next Row
MsgBox Arr1(0, 0)
End Sub
であなたの文字列を置くことができるような場合更新2
は本当に猫を肌するので、多くの方法がどのようにコレクションを使用することについて...あります
Sub test()
Dim numbers As Variant
numbers = Array("Zero", "One", "Two", "Three", "Four", "Five", "Six", "Seven", "Eight", "Nine")
Dim col As Collection
Set col = New Collection
Dim i As Integer
For i = 0 To 3 'get limit from somewhere
col.Add numbers
Next i
MsgBox col(1)(0) 'col(1 to 4)(0 to 9)
End Sub
最初REDIMが内側にありますのための??? – gbianchi
これらは、配列に配置するハードコードされた値になりますか(質問内のコードはMCVEですか、実際には使用するデータですか)?または、ワークシートの範囲から値を設定しようとしていますか?それとも計算された値ですか? – YowE3K