VBA添加图表标题

我只是想使用vba将图表标题添加到我的图表中。 我实际上想要为每个图表中的每个图表recursion执行,但是我甚至无法获得1个图表。 这里是我有的代码:

Dim chnam chnam = Left(ActiveSheet.Name, (Len(ActiveSheet.Name) - 9)) With ActiveWorkbook.ActiveSheet.ActiveChart .HasTitle = True .ChartTitle = chnam End With 

这是我的图表:

在这里输入图像说明

当我运行我的代码时,我得到:

 Object does not support this property or method 

尝试这个:

 Dim chnam as string chnam = Left(ActiveSheet.Name, (Len(ActiveSheet.Name) - 9)) With ActiveWorkbook.ActiveSheet.ActiveChart .HasTitle = True .ChartTitle.Select .ChartTitle.Text = chnam End With 

尝试将代码更改为:

 Dim chnam As String chnam = Left(ActiveSheet.Name, (Len(ActiveSheet.Name) - 9)) With ActiveWorkbook.ActiveChart .HasTitle = True .ChartTitle.Select .ChartTitle.Text = chnam End With 

…将为活动图表工作,然后添加For Each …(如果您想要应用于活动手册中所有图表中的所有图表)。

我有同样的问题,找不到答案 – 但已经find了一些工作。 我的意思是我不知道它为什么会起作用,但确实如此。

试试这个 – 为我工作:

 With ActiveWorkbook.ActiveChart .HasTitle = False // added line - not sure why it works! .HasTitle = True .ChartTitle.Text = "Chart Title" End With 

希望有所帮助。

上面在Office 2016中失败了。我不得不使用Worksheet.Shapes对象。

 Debug.Assert ActiveWorkbook.Charts.Count = 0 ' Strange, but true ActiveSheet.Shapes(1).Chart.ChartTitle.Text = chnam 

下面的子程序适用于我。

 ' Set title of chart with given name on given worksheet Private Sub RetitleChart(sheetExport As Worksheet, strChartName As String, strChartTitle As String) Dim chartOverview As Chart Set chartOverview = sheetExport.Shapes(strChartName).Chart chartOverview.ChartTitle.Text = strChartTitle Set chartOverview = Nothing End Sub 

设置图表标题文本的另一种方法是使用ChartWizard方法,因此:

 Dim chnam as string chnam = Left(ActiveSheet.Name, (Len(ActiveSheet.Name) - 9)) ActiveWorkbook.ActiveSheet.ActiveChart.ChartWizard Title:=chnam 

熟悉这种方法的文档是值得的:

https://msdn.microsoft.com/en-us/library/office/ff838804.aspx

和图表本身:

https://msdn.microsoft.com/en-us/library/office/ff837379.aspx

(其中有一个指向ChartTitle对象文档的链接。)