【发布时间】:2014-07-08 04:03:30
【问题描述】:
我已经自学了VBA,新手。我遇到了这个问题:Subscript out of range
不知道是什么原因,请帮我解决,不胜感激。
代码如下:
Sub copy_paste()
Dim Arr As Variant
Dim x As Integer
Arr = Array("A2:I1000", "K2:M1000", "U2:U1000", "X2:Y1000", "AB2:AB1000", "AE2:AF1000", "AK2: AN1000", _
"AQ2: AQ1000", "AS2: AS1000", "BA2: BB1000", "BE2: BE1000 ")
For x = LBound(Arr) To UBound(Arr)
Application.Workbooks("20140707.xls").Sheets("Sheet1").Range(Arr(i)).copy
If Application.Workbooks("C2_development.xlsx").Sheets("Sheet1").Value <> "" Then
Application.Workbooks("C2_development.xlsx").Sheets("Sheet1").Range("A1").End(xlRight).Offset(0, 1). _
PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Else
Application.Workbooks("C2_development.xlsx").Sheets("Sheet1").Range("A1").End(xlRight). _
PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
End If
Next x
End Sub
【问题讨论】:
-
出现错误时突出显示哪一行代码?
-
我注意到了两件事。不需要
Next x,Next就可以了。它也是End(xlToRight)而不仅仅是End(xlRight)。尝试其中任何一个,如果仍有问题,请告诉我。 -
哦,“下标超出范围”在这里,行:Application.Workbooks("C2_development.xlsx").Sheets("Sheet1").Range("A1").End(xlToRight) .Offset(0, 1)。 _ PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False。