运行时错误"1004":对象"_global"的方法"范围"在另一个上下文中无错误地工作失败



我有一个问题,下面几行给出了标题中引用的运行时错误,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语句移到循环中,您会发现它也将失败。

相关内容

最新更新