Код VBA сводной таблицы не отображает никакого результата - PullRequest
0 голосов
/ 20 февраля 2020

Я хочу автоматизировать процесс сводных таблиц в моем отделе для моих коллег, у которых проблемы с Excel.

Я нашел код ниже онлайн. Это сработало для меня в последний раз, однако, когда я пытаюсь применить тот же макрос к другому набору данных (45000 строк против 4800 строк), это не дает мне никакого результата, просто пустая страница.

Я читал в Интернете, что некоторые версии Excel не могут обрабатывать наборы данных, которые имеют более 65000 строк. В настоящее время я использую Excel 2016 в офисе, поэтому не вижу, в чем проблема ...

Не могли бы вы помочь мне решить проблему?

Dim PTableSA as PivotTable
Dim PCacheSA as PivotCache
Dim PRangeSA as Range
Dim PSheetSA as Worksheet
Dim DSheetSA as Worksheet
Dim LR_SA as Long
Dim LC_SA as Long

On Error Resume Next
Application.DisplayAlerts=False
Application.ScreenUpdating=False
Worksheets("TCD Sanctions").Delete
Worksheets.Add After:=ActiveSheet
ActiveSheet.Name = "TCD Sanctions"

Set PSheetSA = Worksheets("TCD Sanctions")
Set DSheetSA = Worksheets("Sanctions")

LR_SA = DSheet.Cells(Rows.Count, 1).End(xlUp).Row
LC_SA = DSheet.Cells(1, Columns.Count).End(xlToLeft).Column

Set PRangeSA = DSheetSA.Cells(1, 1).Resize(LR_SA, LC_SA)

Set PCacheSA = ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:=PRangeSA).CreatePivotTable(TableDestination:=PSheetSA.Cells(2, 2),TableName:="TCD_Sanctions")
'I think the problem starts here when excel coumdn't create Pivot Table

Set PTableSA = PCacheSA.CreatePivotTable(TableDestination:=PSheetSA.Range("A1"),TableName:="TCD_Sanctions) 

With ActiveSheet.PivotTables("TCD_Sanctions").PivotFields("Aggregate BU")
.Orientation = xlRowField
.Position = 1
End With

With ActiveSheet.PivotTables("TCD_Sanctions").PivotFields("Alert status")
.Orientation = xlRowField
.Position = 2
End With

With ActiveSheet.PivotTables("TCD_Sanctions").PivotFields("Year month")
.Orientation = xlColumnField
.Position = 1
End With

With ActiveSheet.PivotTables("TCD_Sanctions").PivotFields("Entity type")
.Orientation = xlPageField
.Position = 1
End With

'Defining pivot table format
Active.Sheet.PivotTables("TCD_Sanctions").ShowTableStyleRowStripes = True
Active.Sheet.PivotTables("TCD_Sanctions").TableStyle2 = "PivotStyleMedium9"

'Show in Tabular form
PSheet.PivotTables("TCD_Sanctions").RowAxisLayout xlTabularRow
Application.DisplayAlerts = True
Application.ScreenUpdating = True

ActiveSheet.PivotTables("TCD_Sanctions").AddDataField ActiveSheet.PivotTables( _
    "TCD_Sanctions").PivotFields("Alert ID"), "Count of Alert ID", xlCount
End Sub
...