重新应用macros字体更改为chartarea不起作用

我有一些代码,将图表对象中的所有文本更改为特定的大小和字体。 事情是第一次运行它的代码就像一个魅力。 但是,如果我更改图表中文本的任何部分,然后重新运行代码没有任何反应。

例如,我运行代码,然后将标题标题更改为15和字体Arial,然后重新运行macros,并没有任何反应。

什么可能是错的?

我的代码

With Selection .Format.TextFrame2.TextRange.Font.Size = 10 .Format.TextFrame2.TextRange.Font.Name = "Times New Roman" .Format.TextFrame2.TextRange.Font.Bold = msoFalse End With 

当您将字体/大小应用于ChartArea以将其传播到单个部分时,Excel将该信息存储在CharArea级别。 如果您对其中一个组件( ChartTitleAxis等)进行了更改并尝试再次运行您的代码,则ChartArea上没有任何更改。 似乎Excel不传播这些变化“备份”。 这是有道理的,因为现在不同的项目是不同的风格。

处理这个问题的最简单方法是在进行更改之前重置样式。 应用于Chart ClearToMatchStyle (即在您的上下文中的ActiveChartSelection.Parent )将做到这一点。 如果您使用不同的字体大小,或者实际上对ChartArea.Format属性(例如, SizeName等)进行更改,它似乎也会进行更改。

代码为重置选项

 ActiveChart.ClearToMatchStyle With Selection .Format.TextFrame2.TextRange.Font.Size = 12 .Format.TextFrame2.TextRange.Font.Name = "Times New Roman" .Format.TextFrame2.TextRange.Font.Bold = msoFalse End With