Сводная таблица VBA не создается, и я не знаю почему - PullRequest
0 голосов
/ 27 апреля 2020

Я пытался создать сводную таблицу с использованием подпрограммы макросов, но мой код работает не полностью. Рабочий лист создан и назван, но он остается пустым. Я попытался изменить диапазон данных, как видно из другого похожего вопроса, который я нашел здесь, но это не сработало. Я пытаюсь сделать «кнопку-форму», которая создает сводную таблицу большого объема данных. Прошло некоторое время с тех пор, как я работал с VBA, так что извините за мои нубские вопросы и плохое кодирование. Любая помощь приветствуется!

Вот код:

Sub InsertPivotTable()

'Declare Variables
Dim PSheet As Worksheet 'nova planilha pra tab dinamica
Dim DSheet As Worksheet 'planilha de dados da tab dinamica
Dim PCache As PivotCache 'nome do cache
Dim PTable As PivotTable 'nome pra tab dinamica
Dim PRange As Range 'tamanho da fonte de dados
Dim LastRow As Long
Dim LastCol As Long

'Insert a New Blank Worksheet

On Error Resume Next
Application.DisplayAlerts = False
Worksheets("TESTE TabDin").Delete
Sheets.Add Before:=ActiveSheet
ActiveSheet.Name = "TESTE TabDin"
Application.DisplayAlerts = True
Set PSheet = Worksheets("TESTE TabDin")
Set DSheet = Worksheets("GESTÃO ORDENS ESMAGAMENTO")

'Define Data Range

LastRow = DSheet.Cells(DSheet.Rows.Count, 1).End(xlUp).Row
LastCol = DSheet.Cells(16, DSheet.Columns.Count).End(xlToLeft).Column
Set PRange = DSheet.Cells(16, 1).Resize(LastRow, LastCol)

'Define Pivot Cache

Set PCache = ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:=PRange). _
     CreatePivotTable(TableDestination:=PSheet.Cells(2, 2), TableName:="TBAutom")

'Insert Blank Pivot Table

Set PTable = PCache.CreatePivotTable(TableDestination:=PSheet.Cells(1, 1), TableName:="TBAutom")

'Insert Row Fields

With ActiveSheet.PivotTables("TBAutom").PivotFields("CLASSE")
.Orientation = xlRowField
.Position = 1
End With

With ActiveSheet.PivotTables("TBAutom").PivotFields("CENTRO TRAB.")
.Orientation = xlRowField
.Position = 2
End With

'Insert Column Fields

With ActiveSheet.PivotTables("TBAutom").PivotFields("SETOR")
.Orientation = xlColumnField
.Position = 1
End With

With ActiveSheet.PivotTables("TBAutom").PivotFields("REVISÃO")
.Orientation = xlRowField
.Position = 2
End With

'Insert Data Field

With ActiveSheet.PivotTables("TBAutom").PivotFields("TIPO")
.Orientation = xlDataField
.Position = 1
.Function = xlCount
.NumberFormat = "###"
.Name = "CONTAGEM DE ORDENS"
End With

'Format Pivot

TableActiveSheet.PivotTables("TBAutom").ShowTableStyleRowStripes = _
       TrueActiveSheet.PivotTables("TBAutom").TableStyle2 = "PivotStyleMedium9"

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