Изменить данные на определенных вкладках с именами вкладок, чтобы изменить на другой вкладке - PullRequest
0 голосов
/ 12 октября 2018

Я чувствую, что нахожусь в хвосте этого.У меня есть рабочая тетрадь с сотнями вкладок.В рамках более крупного макроса я добавляю 52 дополнительные вкладки, которые будут анализировать данные из существующих вкладок в рабочей книге.Я уже написал VBA, чтобы включить вкладки, отключив автоматическое обновление, чтобы сохранить его быстрым: D.

Теперь я пытаюсь, для вкладок, которые я ввел и чьи имена перечислены на вкладке «Имена вкладок», изменить данные на таблицы и после этого снова включить автоматическое обновление (это косвенные формулы).Это то, что я до сих пор:

Sub TabstoTables()

Dim tablename As Variant
Dim TargetSheet As Worksheet
Dim tbl As ListObject
Dim rng As Range

For Each tablename In Sheets("Tab Names").Range("A1:A5")
    Set TargetSheet = Worksheets(CStr(tablename))
    Set rng = Range(TargetSheet.Range("A1"), TargetSheet.Range("A1").SpecialCells(xlLastCell))
    Set tbl = TargetSheet.ListObjects.Add(xlSrcRange, rng, , xlYes)
    tbl.TableStyle = "TableStyleMedium15"
Next tablename

Application.Calculation = xlAutomatic

End Sub

Я получаю нижний индекс вне диапазона для следующей строки:

Set TargetSheet = Worksheets(CStr(tablename))

Любая помощь будет оченьоценили!

1 Ответ

0 голосов
/ 12 октября 2018

Попробуйте Dim tablename as Range, а затем переключите строку ошибки на:

Set TargetSheet = ThisworkBook.Sheets(tablename)
...