Существует способ определить двумерный массив с помощью методаvalu (), почти как при использовании array () для 1D:
Sub Array2DWithEvaluate()
Dim Array2D As Variant
'[] ist a shorthand for evaluate()
'Arrays defined with evaluate start at 1 not 0
Array2D = [{"1,1","1,2","1,3";"2,1","2,2","2,3"}]
Debug.Print Array2D(2, 2) '=> 2,2
End Sub
Если вы хотите использовать строку для определения массива, вы должны использовать ее следующим образом
Sub Array2DWithEvaluateFromString()
Dim strValues As String
Dim Array2D As Variant
strValues = "{""1,1"",""1,2"",""1,3"";""2,1"",""2,2"",""2,3""}"
Array2D = Evaluate(strValues)
Debug.Print Array2D(2, 2) '=> 2,2
End Sub
Если вам нужна дополнительная информация о других применениях функции Evaluate (), посмотрите этот замечательный пост.
http://www.ozgrid.com/forum/showthread.php?t=52372