Excel 2013 VBA – 运行时错误9:下标超出范围

我是新来的VBA,并遇到了一个问题,我似乎无法find解决scheme,我自己 – >所以你的帮助是非常感谢:)。

尝试运行以下代码时出现“运行时错误9:下标超出范围”:

Dim i as Long, l as Long, x as Long, y as Long, z as Long, lastrow as Long '..some unrelevant code x = 2 For y = 1 To lastrow Step 2: For i = y To lastrow Step 2: For z = 0 To 1 '..do stuff If z = 0 Then Dim datarange As Variant Dim myvar As Double Dim comp As Double Dim lrow As Long Dim lcol As Long l = 0 lrow = x datarange = Range("k" & x & ":" & "ab" & x + 1).Value For lcol = 11 To 28 myvar = datarange(lrow, lcol) comp = datarange(lrow + 1, lcol) If comp > 1 Then If myvar > 1 Then l = l + 1 End If Else: l = l + 1 End If Next End If x = x + 1 Next: Next: Next '..etc 

在实现代码部分的灰色背景之后,我努力将以下知识包括到我的项目中,以达到这一点: http : //blogs.office.com/2008/10/03/what-is-the-fastest-way-扫描大范围的excel / (第三点“使用variablestypesvariables”)。

提前致谢!

如果你会原谅expression式,你已经走出了数组的界限:)

dataRange数组的索引号与它们的行号/列号不同。 如果您正在逐步浏览代码(F8)时进入VB编辑器,视图和本地窗口,您将看到数组为1到2,范围为1到18。