运行时错误1004和424

尼古拉·斯文森(Nicolai Svendsen)

我在补偿范围变量时遇到问题。

我有2张不同的纸,一张带有原始纸,另一张用于制作“印刷版”。

dim r as range

Set r = printSheet.Range("c100")

For loopcounter = 97 To 1 Step -1
    If r > 0 Or r.Offset(0, 1) > 0 Or _
         r.Offset(0, 2) > 0 Or _
        r.Offset(0, 3) > 0 Or _
        r.Offset(0, 4) > 0 Or _
        r.Offset(0, 6) > 0 Or _
        r.Offset(0, 7) > 0 Or _
        r.Offset(0, 8) > 0 Or _
        r.Offset(0, 9) > 0 Or _
        r.Offset(0, 10) > 0 Or _
        r.Offset(0, 11) > 0 Or _
        r.Offset(0, 12) > 0 Or _
        r.Offset(0, 13) > 0 Or _
        r.Offset(0, 14) > 0 Or _
        r.Offset(0, 15) > 0 Then

    Else: r.EntireRow.Delete

    End If
        'this code fails with runtime error 1004
    Set r = printSheet.Range(r).Offset(-1) 
        'this code fails with runtime error 424
    set r = r.offset(-1)

提前致谢。

加里的学生

考虑:

Sub qwerty()
    Dim r As Range
    Set printSheet = ActiveSheet

    For loopcounter = 97 To 1 Step -1
        Set r = printSheet.Cells(loopcounter, "C")
        If r > 0 Or r.Offset(0, 1) > 0 Or _
            r.Offset(0, 2) > 0 Or _
            r.Offset(0, 3) > 0 Or _
            r.Offset(0, 4) > 0 Or _
            r.Offset(0, 6) > 0 Or _
            r.Offset(0, 7) > 0 Or _
            r.Offset(0, 8) > 0 Or _
            r.Offset(0, 9) > 0 Or _
            r.Offset(0, 10) > 0 Or _
            r.Offset(0, 11) > 0 Or _
            r.Offset(0, 12) > 0 Or _
            r.Offset(0, 13) > 0 Or _
            r.Offset(0, 14) > 0 Or _
            r.Offset(0, 15) > 0 Then
        Else
                r.EntireRow.Delete
        End If
    Next loopcounter
End Sub

您的代码的问题是它破坏了Range变量!

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章