Я не думаю, что вы получите зубчатый массив, но ниже предоставит вам пространство с максимальным числом и пробелами, если нет значений.
Sub jag_array()
Dim maxcolb As Long, countcolb As Long, arr() As Variant
maxcolb = Application.Max(Columns(2))
countcolb = 1
ReDim arr(1 To maxcolb, 1 To countcolb) As Variant
'cycle through all values eg 1 to 4
For i = 1 To maxcolb
'expand the array as required
If Application.CountIf(Columns(2), i) > countcolb Then
countcolb = Application.CountIf(Columns(2), i)
ReDim Preserve arr(1 To UBound(arr, 1), 1 To countcolb) As Variant
End If
'find and cycle through all found column b
Set c = Columns(2).Find(i, After:=Cells(1, 2), LookIn:=xlValues)
If Not c Is Nothing Then
j = 1
firstAddress = c.Address
Do
'add column a value
arr(i, j) = Cells(c.Row, 1).Value
j = j + 1
Set c = Columns(2).FindNext(c)
If c Is Nothing Then Exit Do
Loop While c.Address <> firstAddress
End If
Next
'use arr(x, y) as you need to
End Sub
Пожалуйста, посмотрите на эту ссылку http://stackoverflow.com/questions/15846060/excel-vba-sorting-arrays-by-comparing- их-2-index-number/15847460 # 15847460 – Santosh
Я не думаю, что это возможно, какие измерения у вас будут? – Juliusz
@Juliusz правильно, создать массив с этими размерами невозможно. Однако вы можете хранить коллекцию «Collection». – wakjah