使用Vba将公式添加到数据透视表标题
我正在编写一个代码,根据所选的过滤条件创build一个带有variables标题的数据透视表。
我无法在.charttitle.characters.text格式中input公式,并在透视表中select新的filter时自动更新公式。
这是我的代码。 正如你所看到的,我试图将Chart标题关联到基于数据透视表的单元格。 如果有更简单的方法来编码,请让我知道。
数据透视表filter位于工作表(“数据库枢轴”)。范围(“B1”)如果不是特别清楚。
Set objTable = ActiveSheet.PivotTables("SA Pivot Table") Set objPivRange = objTable.TableRange1 Sheets("SA").Range("Z1").Formula = "=IF('Database Pivot'!$B$1=""(All)"", ""Since "" & TEXT('Database'!$L$2,""MM/DD/YYYY""), IF('Database Pivot'!$B$1=""(Multiple Items)"", ""For Selected Dates"", ""On "" & TEXT('Database Pivot'!$B$1,""MM/DD/YYYY"")))" Set objChart = Charts.Add With objChart .HasTitle = True .ChartTitle.Characters.Text = "=""Average WC Adherence "" & 'SA'!$Z$1" .ChartType = xlColumnClustered .Location xlLocationAsNewSheet, Name:="Adherence Chart" .PlotBy = xlColumns .SetSourceData objPivRange With .Axes(xlValue, xlPrimary) .HasTitle = True .AxisTitle.Characters.Text = "% Adherence" End With With .Axes(xlCategory, xlPrimary) .HasTitle = True .AxisTitle.Characters.Text = "Work Center" .TickLabels.Orientation = 90 .TickLabels.Font.Size = 7.5 End With End With
我不知道为什么,但似乎某些公式和运算符不能用在dynamicChart表的公式中。 我们知道一个公式中的简单的单元格参考将起作用,如"='SA'!$Z$1"
。
因此,最好的select是在另一个单元格中创builddynamic图表标题,然后让图表标题中的公式引用包含dynamic图表标题的单个单元格。 在您设置单元格Z1公式的行的下方,添加以下行
' I use Z2, use whatever cell you see fit Sheets("SA").Range("Z2") = "Average WC Adherence " & Sheets("SA").Range("Z1")
然后更新图表标题公式以引用单元格
.ChartTitle.Caption = "='SA'!$Z$2"
注意到我也改变了.Characters.Text
为.Caption
,因为Caption属性可以检测它是否应该包含文本或公式