我有一个问题,下面几行给出了标题中引用的运行时错误,if语句的第一行被突出显示为罪魁祸首:
Sub setupFirstWorksheet()
For i = 0 To Worksheets(1).UsedRange.Rows.Count
If Range("h" & i).Value = 1010 Or Range("j" & i).Value < 0 Or Range("k" & i).Value = False Then
[some code or blank]
End If
Next i
End Sub
然而,在下面放入类似的代码,我没有问题:
Sub test()
For i = 0 To Worksheets(1).UsedRange.Rows.Count
Next i
MsgBox Range("h" & i).Value
End Sub
如有任何帮助,我们将不胜感激。非常感谢。
您在0开始循环,这意味着您正在生成范围引用H0,J0&K0。这些是无效的,因为没有行0。
把你的循环改为从1开始,你就没事了。
测试之所以有效,是因为MsgBox行只在循环完成后执行,并且i将等于Worksheets(1).UsedRange.Rows.Count
。如果将MsgBox语句移到循环中,您会发现它也将失败。