我很想知道是否有办法将相同的方法应用于多个对象。换句话说,我正在寻找某种东西,在某种程度上,它是" With"言。
我知道使用"使用"语句,我可以将多个方法应用于单个对象:
With ITEM_RNG
.ClearContents
.ClearFormats
.ClearOutline
End With
但是,我有多个范围对象,我想应用一个方法:
ITEM_RNG.ClearContents
VALUE_RNG.ClearContents
SUM_RNG.ClearContents
我试图创建一个要循环的对象数组,但它似乎比上面的语法更复杂。有没有办法在没有明确地将.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对象。有没有办法使这项工作,或联盟不适用于这里?
答案 0 :(得分:3)
您可以使用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