【问题标题】:How do I change the chart title font size in a loop using VBA?如何使用 VBA 在循环中更改图表标题字体大小?
【发布时间】:2019-07-23 17:16:47
【问题描述】:

我想创建一些贯穿每个工作表的 VBA 代码,使图表标题 font size = 18、图表轴 font size = 16chart width = 6chart height = 12。目前在循环内很难使用字体大小

得到错误:对象不支持此属性或方法

     Sub ResizeCharts()   'Make all charts on active sheet uniform size.  

       Dim cht As ChartObject 

       For Each cht In ActiveSheet.ChartObjects
        cht.Height = Application.InchesToPoints(6)
        cht.Width = Application.InchesToPoints(12)
        With cht.ActiveChart
             With .ChartTitle
                 .Size = 18
             End With
         End With  
       Next 

     End Sub

【问题讨论】:

  • 哪一行给出了这个错误?您的 for each 实际上与维度在同一行吗?鉴于这有“>”指示线,我不想做任何假设。
  • 每个都如上所示。 “With cht.ActiveChart”行给出了错误
  • 你不需要With cht吗?因为chtChartObject...
  • 你能详细说明一下吗?我是菜鸟
  • @BruceWayne 只是告诉您尝试从引发错误的行中删除 .ActiveChart 部分,然后保留 With cht,因为您已经在循环遍历 ChartObjects 所以您可以'找不到.ActiveChart(你已经在操纵图表本身了)。

标签: excel vba


【解决方案1】:

正如@BruceWayne 所说,您想使用cht 对象并循环浏览您的工作表(如果您想在所有工作表中制作所有图表)

For Each Sht In Application.Worksheets
    For Each cht In Sht.ChartObjects
        cht.Height = Application.InchesToPoints(6)
        cht.Width = Application.InchesToPoints(12)
        cht.Chart.ChartTitle.Format.TextFrame2.TextRange.Font.Size = 18
    next cht
Next Sht 
End Sub

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-09-06
    • 1970-01-01
    • 2016-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-30
    • 1970-01-01
    • 2022-11-13
    相关资源
    最近更新 更多