#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
, поэтому трудно сказать, откуда взялась ошибка.