0
新しいシートにピボットテーブルを自動的に挿入します。これを実行すると、Pivotテーブルの名前を持つ新しいシートだけが挿入されますが、Pivotキャッシュは作成されず、ソースシートからデータが読み込まれません。これからシート名がData
となり、Pivot
が作成されます。新しいシートにピボットテーブルの代わりに新しいシートのみを挿入します
Sub InsertPivotTable()
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
On Error Resume Next
Application.DisplayAlerts = False
Worksheets("PivotTable").Delete
Sheets.Add Before:=ActiveSheet
ActiveSheet.Name = "PivotTable"
Application.DisplayAlerts = True
Set PSheet = Worksheets("PivotTable")
Set DSheet = Worksheets("Data")
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)
Set PCache = ActiveWorkbook.PivotCaches.Create _
(SourceType:=xlDatabase, SourceData:=PRange). _
CreatePivotTable(TableDestination:=PSheet.Cells(2, 2), _
TableName:="PivotTable")
Set PTable = PCache.CreatePivotTable _
(TableDestination:=PSheet.Cells(1, 1), TableName:="PivotTable")
With ActiveSheet.PivotTables("PivotTable").PivotFields("Last_Touch_User_Name")
.Orientation = xlRowField
.Position = 1
End With
With ActiveSheet.PivotTables("PivotTable").PivotFields("Action_Code")
.Orientation = xlColumnField
.Position = 1
End With
With ActiveSheet.PivotTables("PivotTable").PivotFields("Result_Code")
.Orientation = xlColumnField
.Position = 2
End With
With ActiveSheet.PivotTables("PivotTable").PivotFields("Medical_Manager__")
.Orientation = xlDataField
.Position = 1
.Function = xlCount
End With
End Sub
綴りなど、変数の宣言を確認するためにあなたのモジュールの上部にある
Option Explicit
を追加するには、投稿編集してください。 VBEから直接コードをコピー&ペーストして、ブロッククォートではなくコードとして書式を設定します。私はそれをきれいにしようとしましたが、私は時間を費やしたくありません。 – teylyn私は2番目の@teylynでしょう。私はそのほとんどをしましたが、次回はあなたのコードを整理してください。容易いものだ。 VBE(コードを書く場所でハイライトして 'Tab'を押すと、ここにコピーされ、必要に応じてコードが自動的に書式設定されます。 – L42