Hi there,
I wrote a VBA program as below, but I'm not able to exit the sub nor exit do looping if the condition is fulfilled, why so???? It runs through the lines until end subsequently creating empty text file. I want like if the if condition is fulfilled then stop execution and no text file creation. How to accomplish this?
Anyone out there please help me.

Sub EXP_REPORT_TO_TEXT()
           '
           '
           '

    iEnd = 0
    iRow = 1
    
    Do While iEnd = 0
    
    If IsEmpty(ws.Cells(iRow + 1, 1).Value) Then
        iEnd = 1
        MsgBox "No data to export.", vbInformation
        Exit Sub
    Else
        'check if column 12 has value
        If Len(ws.Cells(iRow + 1, 12).Value) = 0 Then
        ws.Cells(iRow + 1, 12).Value = ""
        Else
        ws.Cells(iRow + 1, 12).Value = ws.Cells(iRow + 1, 12).Value
        End If
        
        'check if column 13 has value
        If Len(ws.Cells(iRow + 1, 13).Value) = 0 Then
        ws.Cells(iRow + 1, 13).Value = ""
        Else
        ws.Cells(iRow + 1, 13).Value = ws.Cells(iRow + 1, 13).Value
        End If
        
        'check if column 14 has value
        If Len(ws.Cells(iRow + 1, 14).Value) = 0 Then
        ws.Cells(iRow + 1, 14).Value = ""
        Else
        ws.Cells(iRow + 1, 14).Value = ws.Cells(iRow + 1, 14).Value
        End If
        
        'check if column 15 has value
        If Len(ws.Cells(iRow + 1, 15).Value) = 0 Then
        ws.Cells(iRow + 1, 15).Value = ""
        Else
        ws.Cells(iRow + 1, 15).Value = ws.Cells(iRow + 1, 15).Value
        End If
        
        'check if column 16 has value
        If Len(ws.Cells(iRow + 1, 16).Value) = 0 Then
        ws.Cells(iRow + 1, 16).Value = ""
        Else
        ws.Cells(iRow + 1, 16).Value = ws.Cells(iRow + 1, 16).Value
        End If
        
        Print #FileNum, ws.Cells(iRow + 1, 1).Value & vbTab & ws.Cells(iRow + 1, 2).Value & vbTab & ws.Cells(iRow + 1, 3).Value & vbTab _
        & ws.Cells(iRow + 1, 4).Value & vbTab & ws.Cells(iRow + 1, 5).Value & vbTab & ws.Cells(iRow + 1, 6).Value & vbTab & ws.Cells(iRow + 1, 7).Value & vbTab _
        & ws.Cells(iRow + 1, 8).Value & vbTab & ws.Cells(iRow + 1, 9).Value & vbTab & ws.Cells(iRow + 1, 10).Value & vbTab & ws.Cells(iRow + 1, 11).Value & vbTab _
        & ws.Cells(iRow + 1, 12).Value & vbTab & ws.Cells(iRow + 1, 13).Value & vbTab & ws.Cells(iRow + 1, 14).Value & vbTab & ws.Cells(iRow + 1, 15).Value & vbTab _
        & ws.Cells(iRow + 1, 16).Value
    
    End If
    
    iRow = iRow + 1
    
    Loop
    
    Close #FileNum
    MsgBox "Please collect your file at " & DestFile, vbInformation
    
End Sub
This article has been dead for over six months. Start a new discussion instead.