编译错误:Next without For || VBA

Posted

技术标签:

【中文标题】编译错误:Next without For || VBA【英文标题】:Compile error: Next without For || VBA 【发布时间】:2013-08-14 13:22:05 【问题描述】:

我的代码有问题,出现错误,我不明白为什么。错误是: “编译错误:Next without For” 我不明白为什么会这样。我是编码新手,因此非常欢迎任何帮助和 cmets。 这是代码,为没有 For 的 Next 提供了注释。

Sub CGT_Cost()
startrow = Worksheets("GUTS").Cells(10, 1) 'Here I put 1
endrow = Worksheets("GUTS").Cells(11, 1)   'Here I put 1000

For x = endrow To startrow Step -1

If Cells(x, "Q").Value = "Sale" Then

    If Cells(x, "D").Value = "1" Then

    For i = 1 To 1000

        If Cells(x - i, "R").Value <> "1" Then

    Next i
        Else
        Range("G" & x).FormulaR1C1 = "=R[-" & i & "]C/R[-" & i & "]C[-1]*RC[-1]"

        End If
    End If
    End If
Next x  

End Sub  

提前谢谢大家, 最好的问候, 阿图尔。

【问题讨论】:

【参考方案1】:

每个带有正文的For语句都必须有一个匹配的Next,每个带有正文的If-Then语句都必须有一个匹配的结束如果。

例子:

For i = 1 To 10 '<---- This is the header

    Hello(i) = "Blah"  '<---- This is the body

Next i  '<---- This is the closing statement

您的 If 语句主体的一部分位于 For i 循环内部,一部分位于外部。它必须是 ALL inside 或 ALL outside。仔细思考逻辑,看看你想做什么。

【讨论】:

谢谢。我会看看我能做些什么。【参考方案2】:

你可能有重叠的循环

Sub CGT_Cost()
   startrow = Worksheets("GUTS").Cells(10, 1)   'Here I put 1
   endrow = Worksheets("GUTS").Cells(11, 1)   'Here I put 1000

   For x = endrow To startrow Step -1

      If Cells(x, "Q").Value = "Sale" Then

         If Cells(x, "D").Value = "1" Then

            For i = 1 To 1000

               If Cells(x - i, "R").Value <> "1" Then
                  '
               Else
                  Range("G" & x).FormulaR1C1 = "=R[-" & i & "]C/R[-" & i & "]C[-1]*RC[-1]"
               End If

            Next i

         End If

      End If

   Next x

End Sub

【讨论】:

以上是关于编译错误:Next without For || VBA的主要内容,如果未能解决你的问题,请参考以下文章

Excel VBA 错误:在没有 For 的情况下下一个编译错误

Swift iOS项目archive操作会报错误built without full bitcode解决方法

for next 语句中的“整数超出范围”错误

mysql编译安装完成后,启动时报错The server quit without updating PID file

编译错误:请求非结构或联合中的成员

[React] Override webpack config for create-react-app without ejection