如何修改所有图表样式?表格代码可行但图表代码编译报错
VBA修改图表样式编译报错,表格样式修改正常
已成功用VBA批量修改表格样式,但调整图表样式时出现编译错误,具体情况如下:
可正常运行的表格代码
这段代码能将表格设置为「Medium Style 2, Accent 1」样式:
If oSh.HasTable Then Set oTbl = oSh.Table oTbl.ApplyStyle ("{5C22544A-7EE6-4342-B048-85BDC9FD1C3A}"), True End If
报错的图表代码
尝试用类似逻辑修改图表样式时出错:
If oSh.HasChart Then Set oChr = oSh.Chart oChr.ApplyStyle ("{5C22544A-7EE6-4342-B048-85BDC9FD1C3A}"), True End If
错误提示
Compile Error :- Method or data member not found.
需要让图表也应用「Medium Style 2, Accent 1」样式。
解决办法
问题出在Chart对象没有ApplyStyle方法,表格的Table对象用ApplyStyle,但图表要换用对应的方法,两种可行方案:
方案1:直接用内置样式编号
「Medium Style 2, Accent 1」对应的内置图表样式编号是27,直接设置ChartStyle属性即可:
If oSh.HasChart Then Set oChr = oSh.Chart oChr.ChartStyle = 27 End If
方案2:通过样式GUID应用
如果需要用你之前的样式ID(GUID),要使用ApplyChartStyle方法,参数和表格的ApplyStyle一致:
If oSh.HasChart Then Set oChr = oSh.Chart oChr.ApplyChartStyle "{5C22544A-7EE6-4342-B048-85BDC9FD1C3A}", True End If
内容的提问来源于stack exchange,提问作者user25469104
相关产品推荐
相关产品推荐

