У меня есть этот код, чтобы устранить все аномалии в таблице иерархической таблицы denormlaized. Когда я пытаюсь запустить этот макрос со сто строк записей, может быть, от 200 до 300, он работает нормально. Но когда я пытаюсь запустить макрос со всеми моими строками, который составляет около 18 000 строк, он возвращает ошибку «Subscript out the range». Я не уверен, что не так с кодом, потому что кажется, что он отлично работает с сотнями строк. Я использую версию MS Excel 2010. Любая помощь будет оценена, спасибо вам большое.Подкатегория вне диапазона VBA Excel array
Вот мой рабочий код:
Option Explicit
Sub EliminateAnomaliesDH()
Sheets("Denorm Hier").Select
Range("A1").Select
Dim iCtr As Integer
Dim arr As Variant
iCtr = 2
While Range("B" & iCtr).Value <> ""
arr = Split(Range("B" & iCtr).Value, "[")
arr = Split(arr(1), "]")
Select Case arr(0)
Case "L1"
Range("F" & iCtr & ":AB" & iCtr & "").Value = ""
Case "L2"
Range("H" & iCtr & ":AB" & iCtr & "").Value = ""
Case "L3"
Range("J" & iCtr & ":AB" & iCtr & "").Value = ""
Case "L4"
Range("L" & iCtr & ":AB" & iCtr & "").Value = ""
Case "L5"
Range("N" & iCtr & ":AB" & iCtr & "").Value = ""
Case "L6"
Range("P" & iCtr & ":AB" & iCtr & "").Value = ""
Case "L7"
Range("R" & iCtr & ":AB" & iCtr & "").Value = ""
Case "L8"
Range("T" & iCtr & ":AB" & iCtr & "").Value = ""
Case "L9"
Range("V" & iCtr & ":AB" & iCtr & "").Value = ""
Case "L10"
Range("X" & iCtr & ":AB" & iCtr & "").Value = ""
Case "L11"
Range("Z" & iCtr & ":AB" & iCtr & "").Value = ""
Case "L12"
Range("AB" & iCtr & ":AB" & iCtr & "").Value = ""
End Select
iCtr = iCtr + 1
Wend
Sheets("Instructions").Select
MsgBox "Successfully removed all anomalies of the Denormalized hierarchy Table"
End Sub
Проверьте, есть ли у вас лист «Denorm Hier» в нужном месте/в другом месте. –
@Charles_Stevens да это – user3175963