創建多個數據透視表我已經成功地通過使用VBA創建的數據透視表,但現在我想在兩個單獨的工作表,2和3。但是,創建兩個數據透視表我的腳本VBA只創建一個數據透視表,甚至儘管我已經設置了2個透視表變量:PT1和PT2以及2個透視緩存變量:PTCache1和PTCache2。原始數據在工作表1中,我將其設置爲RawData。
下面是我的腳本。請幫我解決我在這裏失蹤的事情。謝謝。在VBA
Private Sub CreatePivotTables()
Dim ReportC2 As Workbook, RawData As Worksheet, SanityA As Worksheet
Dim LastRow As Long, LastCol As Long, i As Long
Dim PTCache1 As PivotCache, PTCache2 As PivotCache, PT1 As PivotTable, PT2 As PivotTable
Set ReportC2 = Workbooks.Open(ScorecardAddr & "\" & C2Name)
Set RawData = ReportC2.ActiveSheet
With RawData
Columns("A:A").Insert
.Range("A1").Value = "Deal & SKU"
LastRow = .Range("B" & Rows.Count).End(xlUp).Row
LastCol = .Cells(1, Columns.Count).End(xlToLeft).Column
For i = 2 To LastRow
.Range("A" & i) = .Range("F" & i).Value & "|" & .Range("P" & i).Value
Next
End With
With RawData
Set PTCache1 = ActiveWorkbook.PivotCaches.Create(xlDatabase, Range(Cells(1, 1), Cells(LastRow, LastCol)))
Set PTCache2 = ActiveWorkbook.PivotCaches.Create(xlDatabase, Range(Cells(1, 1), Cells(LastRow, LastCol)))
End With
On Error Resume Next
With ReportC2
.Sheets.Add After:=.Sheets(.Sheets.Count), Count:=2
.Sheets(2).Name = "C2Pivot-Transactional"
Set PT1 = .Sheets(2).PivotTables.Add(PTCache1, Range("A7"), "C2PT1")
'put the fields in the pivot table
With PT1
.PivotFields("Deal & SKU").Orientation = xlRowField
.PivotFields("quantity").Orientation = xlDataField
.PivotFields("GrossSellto").Orientation = xlDataField
.PivotFields("Total BDD Rebate").Orientation = xlDataField
.PivotFields("Total FLCP Rebate").Orientation = xlDataField
End With
End With
With ReportC2
.Sheets(3).Name = "C2Pivot-Reseller"
Set PT2 = .Sheets(3).PivotTables.Add(PTCache2, Range("A7"), "C2PT2")
'put the fields in the pivot table
With PT2
.PivotFields("Reseller ID").Orientation = xlRowField
.PivotFields("GrossSellto").Orientation = xlDataField
.CalculatedFields.Add "BDD + FLCP", "= 'Total BDD Rebate' + 'Total FLCP Rebate'"
.PivotFields("BDD + FLCP").Orientation = xlDataField
End With
End With
End Sub
你應該刪除On Error Goto Next,看看你得到了什麼錯誤。 –
您是否嘗試過註釋'Set PTCache2 ...',並且僅對兩個數據透視表使用PTCache1? –
@BobPhillips不幸的是,我爲Excel VBA一個小白,錯誤消息意味着沒有多少給我。這些代碼實際上就是我在YouTube中發現的一些小調整,以適合我的數據集。謝謝。 – lukayl