Код VBA для создания сводных таблиц работает в Excel 365 [Mac], но не в Excel Professional Pro Suite [PC] - PullRequest
0 голосов
/ 30 мая 2018

У меня возникли проблемы при попытке заставить мой код работать на Excel Professional Pro для ПК.Я изменил многие настройки совместимости кода между 365 и Professional Pro и узнал, что 365 автоматически обновляется, а Professional Pro - нет.Кроме того, самое странное, что я разработал код, похожий на приведенный ниже, и он работает.Я сохранил рабочую книгу как Excel Enabled-Macro Workbook, а также Excel Enabled-Macro Template.Я понятия не имею, что делать.Пожалуйста помоги.Код работает как кнопка [Не кнопка ActiveX].

Sub Button1_Click()

'Declare Variables
Dim PSheet As Worksheet
Dim DSheet As Worksheet
Dim PCache As PivotCache
Dim PTable As PivotTable
Dim PRange As Range
Dim LastRow As Long
Dim LastCol As Long


'Insert a New Blank Worksheet
On Error Resume Next
Application.DisplayAlerts = False
Worksheets("US MASTER").Delete
Sheets.Add Before:=ActiveSheet
ActiveSheet.Name = "US MASTER"
Application.DisplayAlerts = True
Set PSheet = Worksheets("US MASTER")
Set DSheet = Worksheets("US Master Macro")

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

'
'Pivot Table 1
'

'Define Pivot Cache
Set PCache = ActiveWorkbook.PivotCaches.Create _
(SourceType:=xlDatabase, SourceData:=PRange, Version:=xlPivotTableVersion14). _
CreatePivotTable(TableDestination:=PSheet.Range("B3"), _
TableName:="Total Backlog", DefaultVersion:=xlPivotTableVersion14)

'Insert Blank Pivot Table
Set PTable = PCache.CreatePivotTable _
(TableDestination:=PSheet.Range("B3"), TableName:="Total Backlog")

'Add PR ID to Values Field
With PSheet.PivotTables("Total Backlog").PivotFields("PR ID")
.Orientation = xlDataField
.Function = xlCount
.Position = 1
End With

'Add Classified Cases in Ranges to Row Field
PSheet.PivotTables("Total Backlog").AddFields _
RowFields:=Array("Classified Cases in Ranges")

'Sort Pivot Table
With PSheet
.Range("C4:C100").Sort Key1:=.Range("C4"), Order1:=xlDescending, Header:=xlNo
End With

'Add Total Backlog
PSheet.Range("B2").Value = "Total Backlog"
PSheet.Range("B3").Value = "Days"
'Color
PSheet.Range("B2").Interior.ColorIndex = 4
'Merge
PSheet.Range("B2:C2").Merge

'Change the Color
PSheet.Range("B3").Interior.ColorIndex = 4
PSheet.Range("C3").Interior.ColorIndex = 4


End Sub
...