【发布时间】:2019-08-13 23:02:00
【问题描述】:
我正在努力格式化 Pivotchart 并使用 VBA 将数据添加到图表中。我已经设置了代码来创建工作正常的数据透视图,我可以手动格式化和添加数据,但是每当我尝试模仿宏记录器或我在网上阅读的任何内容时,它似乎都无法说明“应用程序定义或对象定义错误.'
我尝试将代码更改为将objChart 更改为ActiveChart,试图模仿我在使用宏记录器时所做的事情,但这仍然失败。在我最初的尝试失败后,我尝试了录音机。
我也未能让ChartTitle.Add 工作,因此我可以修改可见的标题(目前没有任何内容显示为标题)。
ActionTracker.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
Actions, Version:=6).CreatePivotTable _
TableDestination:=CtyDrng, TableName:="Country Overview", _
DefaultVersion:=6
Dim pt As PivotTable
Dim PtRange As Range
Dim ChrtRange As Range
Dim objChart As Chart
Dim chtSeries As SeriesCollection
Set pt = CountryDash.PivotTables("Country Overview")
Set PtRange = pt.TableRange1
With PtRange
Set ChrtRange = .Offset(, 1).Resize(1, .Columns.Count - 1)
Set ChrtRange = Union(ChrtRange, .Offset(.Rows.Count - 1, 1).Resize(1, .Columns.Count - 1))
End With
Set objChart = CountryDash.Shapes.AddChart.Chart
With objChart
.SetSourceData ChrtRange
.ChartType = xlBarStacked100
.ShowAllFieldButtons = True
' .ChartTitle.Add
'.ChartTitle.Select
' .ChartTitle.Text = "Country Overview"
End With
With objChart.PivotLayout.PivotTable.PivotFields("Country")
.Orientation = xlRowField
.Position = 1
End With
With objChart.PivotLayout.PivotTable.PivotFields("Region")
.Orientation = xlRowField
.Position = 2
End With
With objChart.PivotLayout.PivotTable.PivotFields("Overdue")
.Orientation = xlRowField
.Position = 3
End With
objChart.PivotLayout.PivotTable.AddDataField objChart.PivotLayout. _
PivotTable.PivotFields("Overdue"), "Overdue", xlCount
我希望代码按国家和地区创建一个透视图,显示过期操作,其中包含 3 个不同类别“已实施”、“进行中”和“过期”。
【问题讨论】:
-
哪一行报错了?
-
'objChart.PivotLayout.PivotTable.AddDataField objChart.PivotLayout。 _ PivotTable.PivotFields("过期"), "过期", xlCount'
标签: excel vba pivot-chart