我每週都會替換源數據,並且附加了許多數據透視表。但是,當我刷新表格時,他們開始丟失一些數據。所以,我繼續並記錄了一些「宏」,以便每次創建和替換新的數據透視表。粘貼的區域將保持不變,我給他們足夠的周圍空間以避免重疊。不幸的是,我收到很多錯誤,並且對VBA根本不擅長。我只知道它來自論壇等用於多個數據透視表的VBA腳本
源數據的「了CopyData」 國別數據透視表應該去「國家」
所以我的問題是:1。 我如何創建一個腳本VBA創建並替換數據透視表,並且可以在很多時候使用(因此可能從刪除舊數據庫開始?) 2.如何保持數據透視表的名稱一般?我不知道下透視表將被調用時,它運行
任何幫助將是巨大的!
下面是我對「宏」之一的代碼,它應該創建並替換兩個數據透視表。
Sub Pivots_Country()
' Pivots_Country Macro
'
'
Range("B215").Select
ActiveWorkbook.Worksheets("Region").PivotTables("PivotTable10").PivotCache. _
CreatePivotTable TableDestination:="Sheet1!R2C2", TableName:="PivotTable10" _
, DefaultVersion:=xlPivotTableVersion14
Sheets("Sheet1").Select
Cells(2, 2).Select
ActiveSheet.PivotTables("PivotTable11").AddDataField ActiveSheet.PivotTables(_
"PivotTable11").PivotFields("storeId"), "Count of storeId", xlCount
With ActiveSheet.PivotTables("PivotTable11").PivotFields("NewCountry")
.Orientation = xlRowField
.Position = 1
End With
Sheets("CopyData").Select
Range("B10").Select
ActiveWorkbook.Worksheets("Sheet1").PivotTables("PivotTable11").PivotCache. _
CreatePivotTable TableDestination:="Sheet1!R4C6", TableName:="PivotTable12" _
, DefaultVersion:=xlPivotTableVersion14
Sheets("Sheet1").Select
Cells(4, 6).Select
With ActiveSheet.PivotTables("PivotTable12").PivotFields("plan")
.Orientation = xlColumnField
.Position = 1
End With
With ActiveSheet.PivotTables("PivotTable12").PivotFields("planCode")
.Orientation = xlPageField
.Position = 1
End With
With ActiveSheet.PivotTables("PivotTable12").PivotFields("NewCountry")
.Orientation = xlRowField
.Position = 1
End With
ActiveSheet.PivotTables("PivotTable12").AddDataField ActiveSheet.PivotTables(_
"PivotTable12").PivotFields("storeId"), "Count of storeId", xlCount
ActiveWindow.SmallScroll Down:=-7
Range("B2:C56").Select
Selection.Copy
Sheets("Country").Select
Range("B4").Select
ActiveSheet.Paste
ActiveWindow.SmallScroll Down:=7
ActiveWindow.SmallScroll ToRight:=-2
ActiveWindow.SmallScroll Down:=-2
ActiveWindow.SmallScroll ToRight:=-1
ActiveWindow.SmallScroll Down:=-1
ActiveWindow.SmallScroll ToRight:=-2
ActiveWindow.SmallScroll Down:=-30
Sheets("Sheet1").Select
ExecuteExcel4Macro "(""PivotTable12"",""planCode"",3,FALSE,TRUE)"
Range("F2:P52").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Country").Select
ActiveWindow.SmallScroll ToRight:=3
ActiveWindow.SmallScroll Down:=-1
ActiveWindow.SmallScroll ToRight:=2
Range("R3").Select
ActiveSheet.Paste
ActiveWindow.SmallScroll Down:=1
Range("Q15").Select
Sheets("Sheet1").Select
Cells.Select
Range("F2").Activate
Application.CutCopyMode = False
Selection.Delete Shift:=xlUp
Range("J11").Select
Sheets("CopyData").Select
End Sub
您是否無法通過選擇整列作爲數據源來保留現有的數據透視表? – pnuts
沒有,沒有工作。我得到的第一個錯誤是關於第一行中的Active.Workbook.Worksheets(「區域」)。我有5個左右的宏,它們在不同的時間和不同的場合似乎都是錯誤的。沒有過濾器是數據的一部分,我試圖在運行宏之前刪除舊的數據透視表,所以我不會得到那個錯誤。但我似乎仍然陷入一片混亂。 – jf12345
我的意思是沒有VBA - 我認爲@HarveyFrench已經詳細說明了。 – pnuts