问题可以这样总结:
这个问题只有在我运行代码时才会出现,而不是在我单步执行chrt.HasTitle
-line 时出现。在这种情况下,它会正确创建一个标题,我可以随意编辑它。
我先给出相关的源代码。这仅包括区分 Excel 2003 与较新版本的代码(因为 Excel 2003 在“较新”代码上崩溃,反之亦然)。
Sub EnableChartTitle(chrt As Chart)
If Application.Version = "11.0" Then
EnableChartTitle_2003 chrt
Else
EnableChartTitle_Post2003 chrt
End If
End Sub
Sub EnableChartTitle_2003(chrt As Chart)
chrt.HasTitle = True
End Sub
Sub EnableChartTitle_Post2003(chrt As Chart)
chrt.SetElement msoElementChartTitleAboveChart
End Sub
使用chrt.SetElement
以前绕过了这个确切的问题,但现在它似乎又回到了 Office 2016。使用旧的chrt.HasTitle
结果与 2016 相同的问题。
在 Office 2016 之前,此代码适用于所有版本的 Office。现在它突然拒绝启用标题,除非我逐步执行代码,这当然不是预期用途。
任何人都知道这是怎么回事以及可能的解决方法?VBA 真的让我对这种东西很紧张,而且谷歌也很难。这是我从中获得先前解决方案的地方。
这是创建图表的代码:
Dim chrt As Chart
RI.rSheet.Activate
Set chrt = Charts.Add.Location(xlLocationAsObject, RI.rSheet.Name)
然后设置它的位置,删除任何自动添加的系列并使用添加新数据chrt.SeriesCollection.Add <range>
。
注意:完全相同的代码在另一个脚本中工作。这是因为这里只添加了一个系列。设置系列名称时,Excel 会自动启用标题。在这个脚本中,添加了多个系列,并且一旦添加了第二组数据,标题就会再次自动删除。然后它将不再启用它。