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对象文档的链接。)