我似乎无法弄清楚如何更改和显示数据透视图的标题。伪代码如下:
Dim PCache As PivotCache
Dim PTable As PivotTable
Dim PRange As Range
Dim PChart As ChartObject
lastRow = .Cells(.Rows.Count, "A").End(xlUp).Row + 3
'Set data range
Set PRange = .Cells(1, 1).Resize(lastRow - 3, 11)
Set PCache = wb2.PivotCaches.Create _
(SourceType:=xlDatabase, SourceData:=PRange)
Set PTable = PCache.CreatePivotTable(TableDestination:=.Cells(lastRow, 6), _
TableName:="VarietyByTerritoryTable")
这一切都按预期进行。 lastRow
变量很挑剔,但可以完成工作。这些全部放在With
块中。在此之后,我有一些代码可以将字段添加到PTable中,但工作正常,因此我选择省略。现在,我创建图表。注意,实际上创建图表效果很好,我似乎无法显示标题。
Set PChart = wb2.Sheets(1).ChartObjects.Add(300, 200, 550, 200)
With PChart
.Chart.SetSourceData PTable.TableRange2
.Chart.ChartType = xlAreaStacked
.Name = "Territory"
.SetElement (msoElementChartTitleAboveChart)
.ChartTitle.Text = strVar & " in " & strTerr
End With
错误显示在.SetElement()
行中。几个问题:
a)有人知道如何解决此问题吗?我认为它应该相对简单,但是我花了最后几个小时在网上四处逛逛,却找不到很多:/
b).ChartObjects.Add(##, ##, ###, ##)
中的数字是做什么的?他们改变了我假设的位置。最后两个是否处理图表的大小?
c)我可以使图表标题成为Set PTable = PCache.CreatePivotTable(TableDestination:=.Cells(lastRow, 6), _
TableName:="VarietyByTerritoryTable")
位中TableName的名称吗?如果是这样,我可以在TableName部分中保留空格吗? (即更改为TableName := "Variety By Territory"
)
d)同样的问题,但带有PChart.Name
。我可以以此作为标题吗?如果可以,应该避免空格吗?
谢谢大家!
答案 0 :(得分:1)
您在.Chart
行中缺少SetElement
。所以试试这个:
.Chart.SetElement (msoElementChartTitleAboveChart)
.Chart.ChartTitle.Text = strVar & " in " & strTerr
对于ChartObjects Method
,您是正确的,最后2个值是指宽度和高度。
您当然可以使图表名称与表名称相同,是的,数据透视表名称中允许使用空格。
与图表标题相同,空格可以。