ピボットテーブルから列チャートを作成しようとしています。ピボットテーブルから列チャートを作成
マクロを記録して自分のコードからピボットテーブルを生成することができます。
マクロを記録してチャートを生成するのと同じ方法で試しましたが、混乱しました。
私は自分のコードを試しましたが、成功しません。誰もが私はピボットテーブルからグラフを生成することができる方法を提案でした、以下
は以下
Sub AutoPivot()
Dim PvtCache As PivotCache
Dim PvtTbl As PivotTable
Dim pvtsht As Worksheet
' set Pivot Cache for Pivot Table
' Your range is static, there are ways to refer to a dynamic range
Set PvtCache = ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:="Preparation sheet!R1C1:R1048576C8")
' set the Pivot table's sheet
Set pvtsht = Worksheets("CAT_Pivot")
' add this line in case the Pivot table doesn't exit >> first time running this Macro
On Error Resume Next
Set PvtTbl = pvtsht.PivotTables("PivotTable1") ' check if "PivotTable7" Pivot Table already created (in past runs of this Macro)
On Error GoTo 0
If PvtTbl Is Nothing Then ' Pivot table object is nothing >> create it
' create a new Pivot Table in "PivotTable4" sheet
Set PvtTbl = pvtsht.PivotTables.Add(PivotCache:=PvtCache, TableDestination:=pvtsht.Range("A3"), TableName:="PivotTable1")
ActiveSheet.PivotTables("PivotTable1").AddDataField ActiveSheet.PivotTables(_
"PivotTable1").PivotFields("Colour"), "Count of Colour", xlCount
With PvtTbl.PivotFields("Category")
.Orientation = xlRowField
.Position = 1
End With
With PvtTbl.PivotFields("Colour")
.Orientation = xlColumnField
.Position = 1
End With
With PvtTbl.PivotFields("Category")
.PivotItems("DG").Visible = False
.PivotItems("DG").Visible = False
.PivotItems("DG-Series").Visible = False
.PivotItems("gn").Visible = False
.PivotItems("yl").Visible = False
.PivotItems("(blank)").Visible = False
End With
With PvtTbl.PivotFields("Colour")
.PivotItems("(blank)").Visible = False
End With
Else
' just refresh the Pivot cache with the updated Range
PvtTbl.ChangePivotCache PvtCache
PvtTbl.RefreshTable
End If
End Sub
ピボットテーブルを生成するために使用されるコードである私は、ピボットテーブルからグラフを生成するために使用され、コードです。 ChartObject.Chart.SetSourceData
を設定するために
Sub Autochart()
Dim chobj As ChartObject
Dim ch As Chart
Dim pvtsht As Worksheet
Set pvtsht = Sheets("CAT_Pivot")
Set chobj = pvtsht.ChartObjects.Add(300, 200, 550, 200)
'300 left, 220 top, 550 width, 200 height
Set ch = chobj.Chart
ch.SetSourceData pt.PvtTbl
ch.ChartType = xlColumn
chobj.Name = "EChart1"
End Sub