【问题标题】:VBA Excel: Apply height and width sizes to more than one graphVBA Excel:将高度和宽度尺寸应用于多个图形
【发布时间】:2015-11-24 19:08:03
【问题描述】:

我有一个 Excel 电子表格,其中一张表格上有多个图表,这些图表会根据用户选择隐藏或显示。我想要做的是通过在工作表更改时以编程方式调整它们的高度和宽度来保护图表免受用户错误的影响。我在工作表更改中有代码,以便隐藏/显示图形并希望在此处插入高度和宽度代码,但我遇到的问题是我找到了调整一个图形的高度和宽度的代码:

    With ChartObjects("Test")
        .height = 300
        .width = 500
    End With

但是将此应用于许多图表会很丑陋,并且我找到了调整所有图表的代码:

 Dim cht As ChartObject

 For Each cht In ActiveSheet.ChartObjects

    cht.Height = Application.InchesToPoints(2)

    cht.Width = Application.InchesToPoints(4)

 Next

这意味着所有图表都具有相同的大小,而我的图表有 2 种不同的大小(小和大),可以通过图表名称来区分,因为小图表在图表名称中包含“小”,而在大图表中包含“小”图表名称中包含“大”。

那么是否可以运行代码来根据图表名称中是否包含“小”或“大”一词来更改图表的大小?

请注意,我使用的是 Excel 2010。

【问题讨论】:

    标签: vba excel graph charts


    【解决方案1】:

    为什么不使用instr 和if 语句在循环中测试名称。只需用正确的尺寸更新它

    Dim cht As ChartObject
    
     For Each cht In ActiveSheet.ChartObjects
        With cht
            If InStr(1, .Name, "small", vbTextCompare) > 0 Then
                .Height = Application.InchesToPoints(2)
                .Width = Application.InchesToPoints(4)
            ElseIf InStr(1, .Name, "large", vbTextCompare) > 0 Then
                .Height = Application.InchesToPoints(4)
                .Width = Application.InchesToPoints(8)
            End If
        End With
     Next cht
    

    【讨论】:

    • 感谢您的帮助!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-08
    • 1970-01-01
    • 1970-01-01
    • 2011-11-02
    • 1970-01-01
    • 2013-02-12
    相关资源
    最近更新 更多