Ошибка отладки для подстрочного индекса вне диапазона (ошибка 9)

#excel #vba

Вопрос:

В настоящее время я отлаживаю код VBA. Переменная startEndArray(0) равна 45, а переменная startEndArray(1) выдает мне ошибку индекса вне диапазона (ошибка 9). Есть какие-нибудь идеи, почему это так?

 Sub orderingByYTDCost(ByVal workbookPath As String, ByVal workbookName As String, ByVal indicesString As String)
    Dim startDataRow As String
    Dim endDataRow As String
    Dim dataColumnStart As String
    Dim dataColumnEnd As String
    Dim indicesArray() As String
    Dim startEndArray() As String
    Dim worksheetName As String
    Dim sortOrderString As String

    sortOrderString = "xlDescending"
    worksheetName = "Rev Sum"
    indicesArray = Split(indicesString, "/")
    arraySize = UBound(indicesArray, 1) - LBound(indicesArray, 1)   1

    For i = 0 To (arraySize - 1)
        startEndArray = Split(indicesArray(i), "[]")
      
MsgBox workbookPath amp; workbookName amp; worksheetName amp; startEndArray(0) amp; startEndArray(1)
Call SortDataWithoutHeader(workbookPath, workbookName, worksheetName, startEndArray(0), startEndArray(1), "A", "D", "C", sortOrderString)
   
End Sub
 

Комментарии:

1. При работе с массивом из Split() всегда стоит проверить размер результирующего массива, прежде чем пытаться с ним работать… Однако мы не можем видеть indicesString , поэтому трудно сказать, откуда взялась ошибка.