VBA'with'语句可以涵盖多个范围或对象吗?

只是想知道是否可以在不添加数组或循环的情况下简化以下代码。

变量 Cell1、Cell2 和 Cell3 是高度独立的。这意味着它们不会每次都相同,因为它们来自之前的几次计算。

    With Rng
        With .Columns(Cell1).Interior
            .PatternColorIndex = xlAutomatic
            .Color = 65535
            .TintAndShade = 0
            .PatternTintAndShade = 0
        End With
        With .Columns(Cell2).Interior
            .PatternColorIndex = xlAutomatic
            .Color = 65535
            .TintAndShade = 0
            .PatternTintAndShade = 0
        End With
        With .Columns(Cell3).Interior
            .PatternColorIndex = xlAutomatic
            .Color = 65535
            .TintAndShade = 0
            .PatternTintAndShade = 0
        End With
    End With

有没有办法写出类似的东西:

    With Rng
        With .Columns(Cell1).Interior, .Columns(Cell2).Interior, .Columns(Cell3).Interior
            .PatternColorIndex = xlAutomatic
            .Color = 65535
            .TintAndShade = 0
            .PatternTintAndShade = 0
        End With
    End With

谢谢,

回答

你可以使用联盟。

    With Rng
        With Union(.Columns(Cell1), .Columns(Cell2), .Columns(Cell3)).Interior
            .PatternColorIndex = xlAutomatic
            .Color = 65535
            .TintAndShade = 0
            .PatternTintAndShade = 0
        End With
    End With

  • Could get rid of the `.PatternColorIndex = xlAutomatic`, `.TintAndShade = 0`, and `.PatternTintAndShade = 0` too. They're superfluous. Also `vbYellow` is a bit more meaningful than `65535`.

以上是VBA'with'语句可以涵盖多个范围或对象吗?的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>