首页 > 解决方案 > 更改数据透视图的标题

问题描述

如何让我的数据透视图的标题更改和显示。伪代码如下:

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) 中的数字是.ChartObjects.Add(##, ##, ###, ##)做什么的?他们改变了我假设的位置。最后两个处理图表的大小吗?

b) 我可以将图表的标题设置为 TableName 中的名称Set PTable = PCache.CreatePivotTable(TableDestination:=.Cells(lastRow, 6), _ TableName:="VarietyByTerritoryTable")吗?如果是这样,我可以在 TableName 部分有空格吗?(即更改为TableName := "Variety By Territory"

c) 相同的问题,但使用PChart.Name. 我可以把这个标题去掉吗?如果可以,我应该避免使用空格吗?

标签: excelvbapivot-table

解决方案


  1. 你错过了.Chart你的SetElement行。所以试试这个:

    .Chart.SetElement (msoElementChartTitleAboveChart)
    .Chart.ChartTitle.Text = strVar & " in " & strTerr
    
  2. 你是对ChartObjects Method的,最后 2 个值是指宽度和高度。

  3. 您当然可以使图表名称与表名称相同,是的,数据透视表名称中允许使用空格。

  4. 图表标题也一样,空格也可以。


推荐阅读