我正在使用以下代码将行导出到单个文本文件:

Sub export_Test()

Dim firstRow As Integer, lastRow As Integer, fileName As String
Dim myRow As Integer,  myStr As String

firstRow = 10
lastRow = 29

For myRow = firstRow To lastRow

     fileName = "C:\mallet\test\" & Cells(myRow, 1) & ".txt"
     Open fileName For Append As #1
     myStr = Cells(myRow, 2).Value
     Print #1, myStr
     Close #1
Next

End Sub


问题在于此代码是针对特定数量的行的。我想将此代码用于不同的数据样本,因此excel文件中的行数将有所不同,并且可能成千上万。我需要将lastRow变量设置为无穷大,并在其遇到空行时退出For循环。

最佳答案

这段代码将在第10行开始运行,直到在第二列中找到一个空白单元格为止。请注意,我还稍微缩短了您的代码(尽管它仍然与写入文件相同):

Sub export_Test()
    Dim myRow As Long
    myRow = 10
    While Cells(myRow, 2).Value <> ""
        Open "C:\mallet\test\" & Cells(myRow, 1) & ".txt" For Append As #1
        Print #1, Cells(myRow, 2).Value
        Close #1
        myRow = myRow + 1
    Wend
End Sub

10-05 21:29