[英]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.