我正在尝试创建一个日志文件。当尝试执行此代码时,我得到错误9;下标超出范围。
我真的很感谢你的帮助,代码似乎适用于其他文件(一年中每个月1个)但不适用于所有人,我不明白。
! [我的密码] http://imgur.com/a/w6xmd
这也是我关于VBA的第一个问题,所以如果您需要更多屏幕截图或信息,请务必询问。
Sub Information()
Dim x, y, z, g, h, f, e, d As Integer
' ---------------------------------------------------------------------------------------------------------------------
' Departure
x = 6
y = 12
z = 2
f = 2
g = 16
e = 1
For i = 1 To 300000000
If e > 30000000 Then
f = f + 1
e = 1
z = 2
Else
If Worksheets("Arrival").Cells(f, 15).Value = Worksheets("Information").Cells(z, x).Value Then
Worksheets("Arrival").Cells(f, 16).Value = Worksheets("Information").Cells(z, 3).Value
Worksheets("Arrival").Cells(f, 14).Value = Worksheets("Information").Cells(z, 4).Value
Worksheets("Arrival").Cells(f, 17).Value = Worksheets("Information").Cells(z, 5).Value
Worksheets("Arrival").Cells(f, 18).Value = Worksheets("Information").Cells(z, 11).Value
Worksheets("Arrival").Cells(f, 19).Value = Worksheets("Information").Cells(z, 7).Value
z = 2
f = f + 1
Else
z = z + 1
e = e + 1
End If
End If
Next i
End Sub
事先感谢很多,
杰森
答案 0 :(得分:0)
声明所有变量:
Dim x as long
Dim y as long
dim z as long
etc.
然后再试一次。可能它会起作用。
顺便说一句,excel只有2 ^ 20行,有点超过100万。您在循环中使用了3000万。试着去想别的事。
答案 1 :(得分:0)
我建议把
Debug.Print f, z, x
在有问题的陈述之前,监视您在工作表中引用的值。
工作表中的行数和列数限制为:
我怀疑x
的值对于语句中的列数已经太高了
If Worksheets("Arrival").Cells(f, 15).Value = Worksheets("Information").Cells(z, x).Value Then
因此下标超出范围。但它也可能是引用行的任何其他数字(f或z)。
Debug.Print
声明之前的这些值应该清楚。
p.s。:你还要声明所有变量,以避免进一步的问题。
Dim x As Long, y As Long , z as Long, ....