I was wondering how to fill a multi-dimensional array in Excel VBA. A 1d array can be filled as follows:
Dim myarray as variant
myarray = Array("sheep", "goat", "chicken")
How would I fill each row separately for a multi-dimensional array?
We can use a loop to fill a multidimensional array. // given value. int [][]ar = new int [ 3 ][ 4 ]; // Fill each row with 10.
The recommended approach to initialize an array with any value is using the Arrays. fill() method. For a 2D array, Arrays. fill() can be called for each array using a for-loop.
You can do this:
Dim a
a = [{1,2;3,4;5,6}]
Limitations:
This only works with arrays of type Variant
, because [x]
is shorthand for Evaluate("x")
which means that x
is interpreted via Excel, and Excel only returns Variants. So declaring Dim a As Variant
or an array Dim a() As Variant
works fine. But not any other type of array e.g. Dim a() As String
fails.
This only works for one specific kind of multi-dimensional array, namely two-dimensional arrays. Not three-, four- etc. dimensional.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With