新しいシートにピボットテーブルを作成しようとしています。さらに、最初のデータシートから同じデータを使用して別のピボットテーブルを作成する別の呼び出しを作成したいと思います。単一のデータソースから複数のピボットテーブルを作成する
下記のマクロで問題があります。私はそれが小さな誤りだと思うが、それを理解することはできない。
Sub Macro2()
Dim FinalRow As Long
Dim DataSheet As String
Dim PvtCache As PivotCache
Dim PvtTbl As PivotTable
Dim DataRng As Range
Dim TableDest As Range
Dim ws As Worksheet
FinalRow = Cells(Rows.Count, 1).End(xlUp).Row
DataSheet = ActiveSheet.Name
'set data range for Pivot Table -- ' conversion of R1C1:R & FinalRow & C15
Set DataRng = Sheets(DataSheet).Range(Cells(1, 1), Cells(FinalRow, 15))
Set ws = Worksheets.Add
ws.Name = "Travel Payment Data by Employee"
'set range for Pivot table placement -- Conversion of R1C1
Set TableDest = Sheets("Travel Payment Data by Employee").Cells(1, 1)
Set PvtCache = ActiveWorkbook.PivotCaches.Create(xlDatabase, DataRng, xlPivotTableVersion15)
'check if "PivotTable4" Pivot Table already created (in past runs of this Macro)
Set PvtTbl = ActiveWorkbook.Sheets("Travel Payment Data by Employee").PivotTables("PivotTable4")
With PvtTbl.PivotFields("Security Org")
.Orientation = xlRowField
.Position = 1
End With
With PvtTbl.PivotFields("Fiscal Month")
.Orientation = xlRowField
.Position = 2
End With
With PvtTbl.PivotFields("Budget Org")
.Orientation = xlRowField
.Position = 3
End With
With PvtTbl.PivotFields("Vendor Name")
.Orientation = xlRowField
.Position = 4
End With
With PvtTbl.PivotFields("Fiscal Year")
.Orientation = xlRowField
.Position = 5
End With
With PvtTbl.PivotFields("Fiscal Year")
.Orientation = xlColumnField
.Position = 1
End With
PvtTbl.AddDataField ActiveSheet.PivotTables(_
"PivotTable2").PivotFields("Dollar Amount"), "Sum of Dollar Amount", xlSum
End Sub
は? * PivotTable2 *はどこから来たのですか? – Parfait
私はそれが誤植で、ピボットテーブル4だったはずだと思います。ピボットテーブルの名前を指定します。私は2番目のピボットテーブルオブジェクトを試していません。今、私は新しいシートにデータを動的に引き出そうとしています。私は新しいシートのために同様のコードを実行する呼び出しを追加できると思います。私の問題はSet PvtTbl = ActiveWorkbook.Sheets(DataSheet).PivotTables( "PivotTable4")で発生します。ランタイムエラー1004 – Cjamros