收到编译错误 - 没有下一步

时间:2014-11-05 16:59:25

标签: excel vba excel-vba

我有一个内置的估算系统,当我们向客户提供报价时,我们可以在现场进行评估,而我正在处理的工作表是我现场收集的所有数据编制的样式,并且可以提供给我们的客户。我有多个估算器使用此模板,因此自动化是关键。我已经创建了一个HURows()宏,它可以用于另一张工作表但是这次我收到一个编译错误,上面写着“For Without Next”。

Sub HURows()
    BeginRow = 192
    EndRow = 277
    ChkCol = 22

    For RowCnt = 192 To 196
        If Cells(193, 22).Value = 0 Then
            Cells(192, 22).EntireRow.Hidden = True
            Cells(193, 22).EntireRow.Hidden = True
            Cells(194, 22).EntireRow.Hidden = True
            Cells(195, 22).EntireRow.Hidden = True
            Cells(196, 22).EntireRow.Hidden = True
            Cells(242, 22).EntireRow.Hidden = False
            Cells(243, 22).EntireRow.Hidden = False
            Cells(244, 22).EntireRow.Hidden = False
            Cells(245, 22).EntireRow.Hidden = False
        Else
            Cells(192, 22).EntireRow.Hidden = False
            Cells(193, 22).EntireRow.Hidden = False
            Cells(194, 22).EntireRow.Hidden = False
            Cells(195, 22).EntireRow.Hidden = False
            Cells(196, 22).EntireRow.Hidden = False
            Cells(242, 22).EntireRow.Hidden = True
            Cells(243, 22).EntireRow.Hidden = True
            Cells(244, 22).EntireRow.Hidden = True
            Cells(245, 22).EntireRow.Hidden = True
        End If
        If Cells(194, 22).Value = 0 Then
            Cells(194, 22).EntireRow.Hidden = True
            Cells(195, 22).EntireRow.Hidden = True
            Cells(243, 22).EntireRow.Hidden = False
            Cells(244, 22).EntireRow.Hidden = False
        Else
            Cells(194, 22).EntireRow.Hidden = False
            Cells(195, 22).EntireRow.Hidden = False
            Cells(243, 22).EntireRow.Hidden = True
            Cells(244, 22).EntireRow.Hidden = True
        End If
        If Cells(195, 22).Value = 0 Then
            Cells(195, 22).EntireRow.Hidden = True
            Cells(245, 22).EntireRow.Hidden = False
        Else
            Cells(195, 22).EntireRow.Hidden = False
            Cells(245, 22).EntireRow.Hidden = True
        End If
        If Cells(198, 22).Value = 0 Then
            Cells(197, 22).EntireRow.Hidden = True
            Cells(198, 22).EntireRow.Hidden = True
            Cells(199, 22).EntireRow.Hidden = True
            Cells(246, 22).EntireRow.Hidden = False
            Cells(247, 22).EntireRow.Hidden = False
        Else
            Cells(197, 22).EntireRow.Hidden = False
            Cells(198, 22).EntireRow.Hidden = False
            Cells(199, 22).EntireRow.Hidden = False
            Cells(246, 22).EntireRow.Hidden = True
            Cells(247, 22).EntireRow.Hidden = True
        End If
        If Cells(201, 22).Value = 0 Then
            Cells(200, 22).EntireRow.Hidden = True
            Cells(201, 22).EntireRow.Hidden = True
            Cells(202, 22).EntireRow.Hidden = True
            Cells(203, 22).EntireRow.Hidden = True
            Cells(204, 22).EntireRow.Hidden = True
            Cells(248, 22).EntireRow.Hidden = False
            Cells(249, 22).EntireRow.Hidden = False
            Cells(250, 22).EntireRow.Hidden = False
            Cells(251, 22).EntireRow.Hidden = False
        Else
            Cells(200, 22).EntireRow.Hidden = False
            Cells(201, 22).EntireRow.Hidden = False
            Cells(202, 22).EntireRow.Hidden = False
            Cells(203, 22).EntireRow.Hidden = False
            Cells(204, 22).EntireRow.Hidden = False
            Cells(248, 22).EntireRow.Hidden = True
            Cells(249, 22).EntireRow.Hidden = True
            Cells(250, 22).EntireRow.Hidden = True
            Cells(251, 22).EntireRow.Hidden = True
        End If
        If Cells(202, 22).Value = 0 Then
            Cells(202, 22).EntireRow.Hidden = True
            Cells(250, 22).EntireRow.Hidden = False
        Else
            Cells(200, 22).EntireRow.Hidden = False
            Cells(202, 22).EntireRow.Hidden = False
            Cells(248, 22).EntireRow.Hidden = True
            Cells(250, 22).EntireRow.Hidden = True
            Cells(204, 22).EntireRow.Hidden = False
        End If
        If Cells(203, 22).Value = 0 Then
            Cells(203, 22).EntireRow.Hidden = True
            Cells(251, 22).EntireRow.Hidden = False
        Else
            Cells(200, 22).EntireRow.Hidden = False
            Cells(203, 22).EntireRow.Hidden = False
            Cells(248, 22).EntireRow.Hidden = True
            Cells(251, 22).EntireRow.Hidden = True
            Cells(204, 22).EntireRow.Hidden = False
        End If

End Sub

2 个答案:

答案 0 :(得分:2)

你没有接下来使用过。

for-next的结构就像 -

For i= 1 to 100

......do something....

Next i

答案 1 :(得分:0)

查看此link。您在上一次Next后遗失End If

<强> Google is my friend.