Ошибка «Subscript out of range» для ListObject - PullRequest
0 голосов
/ 29 июня 2019

Я вызываю подпрограмму, которая выбирает и конвертирует диапазоны на нескольких листах в таблицы.Он генерирует таблицы и называет их «SIS_1», «SIS_2» и так далее.Чтобы использовать эти таблицы в моем текущем подпрограмме, я могу объявить и установить таблицу "SIS_1" на листах 3, но не могу объявить и установить таблицу "SIS_2" на листе 4 и так далее.Имеет ли это какое-либо отношение к коду листа (выделено красным)?

IMG2

Я не могу найти, в чем проблема.Если я вручную переименую «SIS_2» в Excel в «SIS_x», а затем переименую его обратно в «SIS_2», это, похоже, решит проблему, и я смогу объявить переменную как обычно.Я не понимаю, почему это так.

IMG1

Код Я хочу объявить ListObject

Public Sub ImportButton_Click()

    Dim totalSheets As Integer
    Dim startSheet As Integer, endSheet As Integer
    Dim masterSIS As ListObject, sourceSIS As ListObject
    Dim i As Integer

    Set masterSIS = Worksheets("MasterSIS").ListObjects("MasterSIS")

    totalSheets = ThisWorkbook.Worksheets.Count

    Call importSheets([filePath])

    startSheet = totalSheets + 1
    endSheet = ThisWorkbook.Worksheets.Count

    Call convertToTable(startSheet, endSheet, "SIS")

    For i = 1 To endSheet - totalSheets
        Set sourceSIS = Worksheets(startSheet).ListObjects("SIS_" & i)
        Call appendTable(masterSIS, sourceSIS)
        startSheet = startSheet + 1
    Next i

End Sub

Для тех, у кого есть подобные проблемы.Надеюсь, что это поможет.

Нашел решение здесь https://www.dingbatdata.com/2017/11/24/referencing-listobjects-with-vba/.

Чтобы объявить LinkObject, вам нужно сделать это следующим образом Range("TableName").ListObject. Похоже, что "будет ошибка VBA, еслилист меняет свою позицию.

1 Ответ

0 голосов
/ 29 июня 2019

Обнаружена проблема с неверно созданным именем таблицы из кода цикла в предыдущем подпункте.Исправлено, и ошибка исчезла.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...