Я пытаюсь написать макрос, который проходит через все таблицы в книге, а затем добавляет имя каждой таблицы в виде «TableName [#All]» в массив ,VBA Как создать массив объектов ListObjects
См незавершенный код ниже
Sub NewShopPage()
'
' Macro that creates a duplicate sheet from a hidden template
' searches for every table in the workbook and then adds them to the
' PivotTableWizard.
'
Dim NewShop As Variant
NewShop = InputBox("What Shop are you creating a new estimate sheet for? (example: Shop 18)")
NewShop = Replace(NewShop, " ", "_")
Sheets("CE_Template").Copy After:=Sheets("Project Estimator")
ActiveSheet.Name = NewShop
ActiveSheet.ListObjects(1).Name = NewShop
Sheets("Project Estimator").Select
ActiveSheet.ListObjects(1).Select
Dim MyArray As Variant
'HELP NEEDED HERE:
'For each [Table] in [workbook]
' Add TableName + "[#All]" to MyArray
'Next
ActiveSheet.PivotTableWizard SourceType:=xlConsolidation, SourceData:=MyArray
End Sub
я только пришел к выводу, что он должен действовать таким образом, потому что, если пользователь добавляет лист потом удаляет его, ошибки PivotTableWizard из.
Я не уверен, что если делать это таким образом, каждый раз удаляется форматирование, которое имеет сводная таблица.
Спасибо, но «делать вещи здесь» часть действительно то, что мне нужно. Это не решает мой главный вопрос о том, как добавить каждую из этих таблиц в массив. –