Я хочу создать массив VBA, который имеет ноль элементов, но может быть зациклен на.
Вы можете посмотреть на код ниже, чтобы понять, что я имею в виду:
Sub testloopemptyarr()
Dim spl() As String, v As Variant, count As Integer
spl = Split(Empty, ",") 'lbound=0, ubound=-1, zero elements
'ReDim spl(-1 To -1) ' one element
'ReDim spl(-1) ' does not compile: subscript out of range
'ReDim spl(-1 To 0) ' two elements
'ReDim spl(0 To -1) ' does not compile: subscript out of range
For Each v In spl
count = count + 1
Next
MsgBox count
End Sub
В сообщении появится 0в этом случае, потому что разделение пустой строки вернет массив нулевого элемента. Нет ошибок, возникающих при обнаружении цикла for, что означает, что массив является выделенным массивом.
Если вы проверите его, вы можете обнаружить, что после вызова Split () lbound (spl) равен 0, ubound (spl) равно -1, но делать ReDim spl(0 To -1)
нелегально (попробуйте раскомментировать строку и запустить)
Поэтому мой вопрос:
Как мне создатьмассив, который ведет себя так же, как и массив Split ()?