【问题标题】:Loop Error (Next without For)循环错误(下一个没有 For)
【发布时间】:2015-07-28 03:22:25
【问题描述】:

我是一个真正的 VBA 爱好者,非常感谢一些帮助。

我编写了下面的代码来循环遍历一列,查找某个字符串(标题),如果找到该字符串,则搜索字符串下方的数字并将值复制到列表中。
我收到“Next without For”编译错误。

提前感谢您的帮助。

Sub data()


For i = 0 To 1000

If Range("C1").Offset(i, 0) <> Range("G2") Then Next i Else


For j = 1 To 20

If Not IsNumeric(Range("C1").Offset(i, 0).Offset(j, 0)) Then Next j Else

Range("G1").End(xlDown).Offset(1, 0) = Range("C1").Offset(i, 0).Offset(j, 0).Value

Next j
Next i


End Sub

【问题讨论】:

标签: vba excel


【解决方案1】:

您可以按如下方式更改您的代码:

    For i = 0 To 1000
        If Range("C1").Offset(i, 0) = Range("G2") Then
            For j = 1 To 20
                If IsNumeric(Range("C1").Offset(i, 0).Offset(j, 0)) Then
                   Range("G1").End(xlDown).Offset(1, 0) = Range("C1").Offset(i, 0).Offset(j, 0).Value
                EndIf
            Next j
        EndIf
    Next i
End Sub

【讨论】:

    【解决方案2】:

    这看起来很糟糕。让我帮忙。

    首先,尝试像这样使用If

    If *condition* then
        'what you want to do
    else
        'in every other cases, what do you want to do
    End if
    

    并使用For 喜欢:

    For i = 1 To *number of times you want to loop*
        'what do you want to loop
    Next i
    

    如果你把If放在For里面,你先关闭If;如果你把For放在If里面,你总是在End if之前使用Next i

    例如:

    For i = 1 To *number of times you want to loop*
        If *condition* then
            'what you want to do
        else
            'if the condition is not true, what do you want to do
        End if
    Next i
    

    【讨论】:

      猜你喜欢
      • 2019-06-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-17
      • 1970-01-01
      • 2021-04-22
      • 1970-01-01
      • 2014-08-31
      相关资源
      最近更新 更多