麻烦阻止我的循环

时间:2017-03-21 19:43:59

标签: excel vba loops automation

Do While Cells(i, 1).Value <> ""

   ....

    End If
    i = i + 1
Loop
End Sub

右。它可以很好地处理数字并完美地停止。但是有了Text。它不会停止。

理想情况下,我想停留在我的内容的最后一行,而不是Excel中的最后一行。我设法使它与数字一起工作正常,但我不能用Text修复它。

任何帮助都会很棒,因为我是VBA的初学者。

Sub checkRoutine()
Dim i As Integer
Dim LastRow As Long

i = 1


Do While Cells(i, 1).Value <> ""
    If IsNumeric(Cells(i, 1).Value) Then Cells(i, 2).Value = Cells(i, 1).Value & " " & Cells(7, 5).Value

    If Not IsNumeric(Cells(i, 1).Value) Then
        LastRow = Range("A" & Rows.Count).End(xlUp).row + 1
        ActiveSheet.Cells(LastRow, "A").Value = Cells(i, 1).Value & " " & Cells(7, 5).Value
    End If
    i = i + 1
Loop
End Sub

1 个答案:

答案 0 :(得分:3)

正如很多人所建议的那样,您需要更改为使用For循环:

Sub checkRoutine()
    Dim i As Long
    Dim LastRow As Long

    LastRow = Range("A" & Rows.Count).End(xlUp).row
    For i = 1 To LastRow
        If IsNumeric(Cells(i, 1).Value) Then
            Cells(i, 2).Value = Cells(i, 1).Value & " " & Cells(7, 5).Value
        Else
            LastRow = Range("A" & Rows.Count).End(xlUp).row + 1
            Cells(LastRow, "A").Value = Cells(i, 1).Value & " " & Cells(7, 5).Value
        End If
    Next
End Sub