重新应用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
级别。 如果您对其中一个组件( ChartTitle
, Axis
等)进行了更改并尝试再次运行您的代码,则ChartArea
上没有任何更改。 似乎Excel不传播这些变化“备份”。 这是有道理的,因为现在不同的项目是不同的风格。
处理这个问题的最简单方法是在进行更改之前重置样式。 应用于Chart
ClearToMatchStyle
(即在您的上下文中的ActiveChart
或Selection.Parent
)将做到这一点。 如果您使用不同的字体大小,或者实际上对ChartArea.Format
属性(例如, Size
, Name
等)进行更改,它似乎也会进行更改。
代码为重置选项
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