繁体   English   中英

Excel VBA数组范围的循环

[英]Excel VBA Array Ranges for a loop

我试图获取一个循环函数来引用单元格区域,而不是单独输入工作表名称。

我有这段代码可以工作:

Sub LoopTest()
'
' Macro4 Macro
'

'
' Loop Test

Dim SheetsArray As Variant
Dim i As Integer
SheetsArray = Array("Bun1", "Bun2")

For i = LBound(SheetsArray) To UBound(SheetsArray)
    With Worksheets(SheetsArray(i)).Select
        Range("A2:G60").Select
        Selection.ClearContents
    End With
Next i

End Sub

但是,当我尝试使其引用一个范围时,此代码就没有了:

Sub LoopTest()
'
'
' Loop Test

Dim Arr As Variant
Dim i As Integer
Dim rng As Range

Set rng = Worksheets("Names").Range("A2:A3")

Arr = rng

For i = LBound(Arr) To UBound(Arr)
    With Worksheets(Arr(i)).Select
        Range("A2:G60").Select
        Selection.ClearContents
    End With
Next i

End Sub

尝试使用它时,出现“下标超出范围”错误,但是所有工作表都存在(该范围与第一个代码具有相同的名称)。 调试突出显示了

WIth Worksheets(Arr(i)).Select

线。 任何帮助将不胜感激!

-Cr1kk0

将范围分配给变量时,始终会得到一个二维数组,因此需要指定两个维度。 也无需在此处选择任何内容:

For i = LBound(Arr, 1) To UBound(Arr, 1)
    Worksheets(Arr(i, 1)).Range("A2:G60").ClearContents
Next i

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM