VBA录制宏代码无法修改图表字体

139 篇文章 8 订阅
2 篇文章 0 订阅

录制宏是需要VBA的非常给力的帮手,在Excel中操作时,录制宏就可以轻松得到代码。 R U SURE??? 确实有些操作并不能录制代码。

即使可以被录制的操作,得到的代码是否可以正常使用呢?非常不幸的是,答案是否定的。

在Excel有一个图表,选中图表并设置图表字体为“微软雅黑”字号为9,录制宏得到的代码如下。

Sub1()
 ActiveChart.ChartArea.Select
    With ActiveSheet.Shapes("图表 1").TextFrame2.TextRange.Font
        .NameComplexScript = "微软雅黑"
        .NameFarEast = "微软雅黑"
        .Name = "微软雅黑"
    End With
    ActiveSheet.Shapes("图表 1").TextFrame2.TextRange.Font.Size = 9
End Sub

在Excel中选中图表,运行上述代码,错误信息如下所示。
在这里插入图片描述
虽然使用如下代码遍历Shapes集合,似乎可以访问Chart对象,但是能够使用的属性非常有限,并不能设置Chart对象的字体,因此上述录制代码产生运行时错误。这可以看做录制宏的一个BUG。

Sub ListShp()
    Dim shp
    For Each shp In ActiveSheet.Shapes
        Debug.Print shp.Name
    Next
End Sub

在VBA代码中应该使用ChartObject对象,才能设置Chart对象的字体,代码如下。

Sub SetChartFont()
    With ActiveSheet.ChartObjects("图表 1").Chart.ChartArea.Format.TextFrame2.TextRange.Font
        .NameComplexScript = "微软雅黑"
        .NameFarEast = "微软雅黑"
        .Name = "微软雅黑"
        .Size = 9
    End With
End Sub

VBA是个好工具,但是它并不是万能的,使用中要注意这些小异常。

参与评论 您还未登录,请先 登录 后发表或查看评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:编程工作室 设计师:CSDN官方博客 返回首页

打赏作者

taller_2000

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值