对多个对象应用相同的方法

我很想知道是否有办法将相同的方法应用于多个对象。 换句话说,我正在寻找某种东西,在某种程度上,它是“With”语句的反例。

我知道使用“With”语句,我可以将多个方法应用于单个对象:

With ITEM_RNG .ClearContents .ClearFormats .ClearOutline End With 

但是,我有多个范围对象,我想要应用一个单一的方法:

 ITEM_RNG.ClearContents VALUE_RNG.ClearContents SUM_RNG.ClearContents 

我试图创build一个循环的对象数组,但似乎比上面的语法更复杂。 有没有办法做到这一点,而不是明确地将每个对象分别附加.ClearContents?

现在,利用我所了解的联盟职能,我试图采用以下方法,但没有成功。

 Sub ClearBox(SeriesBox As MSForms.ListBox) SeriesBox.Clear End Sub Sub SeriesBoxesClearall() ClearBox Application.Union(SERIES1_BOX, SERIES2_BOX, SERIES3_BOX) End Sub 

其中SERIES [1-3] _BOX是MSForms.ListBox对象。 有没有办法使这项工作,或联盟不适用于此?

你可以使用Application.Union (假设你在同一张纸上的所有范围):

 Application.Union(ITEM_RNG,VALUE_RNG,SUM_RNG).ClearContents 

或者像这样:

 With Application.Union(ITEM_RNG,VALUE_RNG,SUM_RNG) .ClearContents .ClearFormats .ClearOutline End With 

UPD:

 Sub cleanUp(rng As Range) rng.ClearContents End Sub Sub test() Call cleanUp(Application.Union(ITEM_RNG,VALUE_RNG,SUM_RNG)) End Sub