我只想使用vba为图表添加图表标题。我实际上想要为每张表中的每个图表递归执行,但我甚至无法获得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
答案 0 :(得分:4)
试试这个:
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
答案 1 :(得分:0)
尝试将代码更改为:
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
...如果要应用于activeworkbook中所有工作表中的所有图表。
答案 2 :(得分:0)
我遇到了同样的问题但找不到答案 - 但找到了有效的方法。我的意思是,我不知道它为什么会起作用,但确实如此。
试试这个 - 为我工作。:
With ActiveWorkbook.ActiveChart
.HasTitle = False // added line - not sure why it works!
.HasTitle = True
.ChartTitle.Text = "Chart Title"
End With
希望有所帮助。
答案 3 :(得分:0)
以上在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
答案 4 :(得分:0)
设置图表标题文本的另一种方法是使用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对象文档的链接。)
答案 5 :(得分:0)
我遇到了同样的问题-在我的当前计算机Excel 2017上,而6个月前还没有出现过;有代码
pchrTheChart.HasTitle = True
pchrTheChart.ChartTitle.Select
第二行会出错;如果我插入了一个断点,然后继续进行而没有任何变化,那就很好了。
但是,上述解决方案的变体起作用了;即使图表是刚刚创建的,开始时都没有标题,但我必须在打开标题之前明确关闭标题,现在每次都可以正常使用。
pchrTheChart.HasTitle = False
pchrTheChart.HasTitle = True
pchrTheChart.ChartTitle.Select
原始发帖人说,他们不知道它为什么起作用;回答,对我来说,我们似乎正在解决VBA错误,我认为这与null处理有关。