我正在尝试将范围放入数组,以便可以循环它们。由于有很多具有相同范围的纸张。但是excel在分配值时返回错误“对象变量或未设置块变量”。带有(“ **”)的那个。如何解决该错误并使它正常工作?
Dim TableOldData(0 To 6) As Range
**TableOldData(0) = Range("F6:P8")**
TableOldData(1) = Range("F30:P32")
TableOldData(2) = Range("F54:P56")
TableOldData(3) = Range("F78:P80")
TableOldData(4) = Range("F102:P104")
TableOldData(5) = Range("F126:P128")
TableOldData(6) = Range("F150:P152")
Dim ColumnClear(0 To 6) As Range
ColumnClear(0) = Range("P6:P8")
ColumnClear(1) = Range("P30:P32")
ColumnClear(2) = Range("P54:P56")
ColumnClear(3) = Range("P78:P80")
ColumnClear(4) = Range("P102:P104")
ColumnClear(5) = Range("P126:P128")
ColumnClear(6) = Range("P150:P152")
Dim NewValue(0 To 6) As Range
NewValue(0) = Range("B6:B8")
NewValue(1) = Range("B30:B32")
NewValue(2) = Range("B54:B56")
NewValue(3) = Range("B78:B80")
NewValue(4) = Range("B102:B104")
NewValue(5) = Range("B126:B128")
NewValue(6) = Range("B150:B152")
Dim i As Integer
i = 0
Dim RowPaste As Integer
RowPaste = 6
While i <> 6
TableOldData(i).Select
Selection.Copy
Cells(RowPaste, 5).Select
ActiveSheet.PasteSpecial Format:=3, Link:=1, DisplayAsIcon:=False, _
IconFileName:=False
ColumnClear(i).Select
Selection.ClearContents
NewValue(i).Select
Selection.Copy
Cells(RowPaste, 16).Select
ActiveSheet.PasteSpecial Format:=3, Link:=1, DisplayAsIcon:=False, _
IconFileName:=False
i = i + 1
RowPaste = RowPaste + 24
Wend
答案 0 :(得分:0)
执行此操作:
Dim Buf() As Variant ' only Variant type is accepted
Buf = Range("F5:H10")
此方法导致3x6数组。这样,您将数据放入可以循环的数组中。 还有另一种管理范围引用的方法,它比较复杂:
Dim rData as Range, r as Range
Set rData = Range("F5:H10")
For Each r In rData
Debug.Print r.Value
Next r
数据从左到右然后按降序排列。