VBA 7.0:for循环中GoTo上的编译器错误

时间:2016-01-29 00:10:09

标签: vba excel-vba excel

我正在尝试在if条件下继续for循环,但是VBA抱怨编译错误:" Next没有For"。
我正在使用" GoTo",因为没有"继续" VBA中的关键字,例如其他典型的编程语言。

知道这里有什么问题吗?

For RowIndex = 2 To lastrow

    If Worksheets("Sheet1").Range("$b$" & RowIndex) = "" Then
      GoTo EndLoop

    output_string = setproperty & Worksheets("Sheet1").Range("$b$" & RowIndex) & " [ get_ports " & """" & Worksheets("Sheet1").Range("$g$" & RowIndex) & """" & " ]"
    Print #1, output_string

    output_string = setpropertyiostandard & Worksheets("Sheet1").Range("$k$" & RowIndex) & " [ get_ports """ & Worksheets("Sheet1").Range("$g$" & RowIndex) & """" & " ]"
    Print #1, output_string


    If Worksheets("Sheet1").Range("$k$" & RowIndex) = "LVCMOS18" Then
        'Debug.Print "found" & RowIndex
        output_string = "set_property DRIVE 8 [ get_ports " & Worksheets("Sheet1").Range("$g$" & RowIndex) & "]"
        Print #1, output_string
    End If

EndLoop:
Next RowIndex

2 个答案:

答案 0 :(得分:3)

你的第一个If / Then保持打开状态,需要在for循环中关闭它。

答案 1 :(得分:0)

在您的情况下,您可以将测试从=更改为<>。另一个技巧是使用while true循环

For RowIndex = 2 to LastRow
  While true
    If Worksheets("Sheet1").Range("$b$" & RowIndex) = "" Then Exit Do

    Rest of your code here

    Exit Do '<- Remember to do this or you'll be caught in an infinite loop
  Loop
Next