VBA: создание сводной таблицы на новом листе - PullRequest
2 голосов
/ 23 сентября 2019

Я пытаюсь создать сводную таблицу на отдельном листе от источника данных.Проблема, с которой я столкнулся, заключается в создании сводной таблицы на отдельной странице из сводной кэш-памяти, поскольку я получаю ошибку времени выполнения «1004», тогда как я могу без проблем вставить сводную таблицу на тот же лист.Код, который у меня сейчас есть, выглядит так:

    Sub PivotTable()

ThisWorkbook.Worksheets("FG REPORT").Activate

Dim ws As Worksheet
Dim pc As PivotCache
Dim pt As PivotTable
Dim pf As PivotField
Dim pf2 As PivotField
Dim pf3 As PivotField


Set pc = ThisWorkbook.PivotCaches.Create( _
                                        SourceType:=xlDatabase, _
                                        SourceData:=Sheet4.Name & "!" & Sheet4.Range("A1").CurrentRegion.Address, _
                                        Version:=xlPivotTableVersion15)


Set ws = ThisWorkbook.Sheets("Pivot")
ws.Activate
Cells.Select
Cells.Clear
Range("A1").Select


Set pt = pc.CreatePivotTable( _
    TableDestination:=ActiveCell, _
    TableName:="AgedPivot")


'Set Pivot Field variables

Set pf = pt.PivotFields("Description")
Set pf2 = pt.PivotFields("Age Range")
Set pf3 = pt.PivotFields("OH Qtys")

pf.Orientation = xlRowField
pf2.Orientation = xlPageField
pf3.Orientation = xlDataField


End Sub

1 Ответ

0 голосов
/ 23 сентября 2019

Попробуйте объединить одинарные кавычки до и после имени листа, так как имя содержит пробел:

SourceData:="'" & Sheet4.Name & "'!" & Sheet4.Range("A1").CurrentRegion.Address
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...