У меня есть простая проблема:
- У меня есть набор данных, который я просеиваю и добавляю в массив при совпадении критериев
- ПроблемаЯ не знаю, сколько совпадений может быть, поэтому мне нужно, чтобы массив был неопределенного размера.
- Второй индекс массива является статическим.
В (псевдо-язык) пример:
if <matched criteria> = True {
i = i + 1
array( i, 1 ) => "John Doe" ' name
array( i, 2 ) => "New York" ' location
array( i, 3 ) => "02. 08. 1992" ' birthdate
}
Проблема в том, что в vba необходимо предварительно объявить массивы (особенно сOption Explicit
включено).Мой мыслительный процесс состоял в том, чтобы объявить массив, который начинался бы с первого индекса в 0
, и я постепенно ReDim
использовал бы его по мере необходимости.
Вот упрощенный пример моего кода:
Dim cell as Range
Dim arr(0, 1 to 3) as String
Dim i As Integer: i = 0
For each cell in Range("A1:A100")
If criteria_match(cell) = True Then
arr(i, 1) = Cells(cell.row, 4)
arr(i, 2) = Cells(cell.row, 5)
arr(i, 3) = Year(Cells(cell.row, 6))
i = i + 1
ReDim Preserve arr(i, 1 to 3)
End If
Next cell
Проблема в том, что возникает исключение:
Возможно, есть какой-нибудь способ, я мог бы неуклонно увеличивать размер индекса первого массивав зависимости от необходимости?