如何读取txt文件中的行,但从第二行开始,跳过第一行?

时间:2013-04-30 16:04:36

标签: excel vba excel-vba

因此,此Excel宏可以很好地从特定文件夹中读取多个txt文件,并在第一个Excel工作表中插入所有行。我想编辑这段代码,以便宏跳过每个txt文件的第一行..

有人可以帮忙吗?

Sub test1()
    Dim fso As FileSystemObject
    Dim folder As folder
    Dim file As file
    Dim FileText As TextStream
    Dim TextLine As String
    Dim Items() As String
    Dim i As Long
    Dim cl As Range



    ' Get a FileSystem object
    Set fso = New FileSystemObject

    ' get the directory you want
    Set folder = fso.GetFolder("C:\Users\Desktop\TXT")

    ' set the starting point to write the data to
    Set cl = ActiveSheet.Cells(1, 1)

    ' Loop thru all files in the folder
    For Each file In folder.Files
        ' Open the file
        Set FileText = file.OpenAsTextStream(ForReading)

        ' Read the file one line at a time
        Do While Not FileText.AtEndOfStream
            TextLine = FileText.ReadLine

            ' Parse the line into | delimited pieces
            Items = Split(TextLine, vbTab)

            ' Put data on one row in active sheet
            cl.Value = file.Name
            ' Put data on one row in active sheet
            For i = 0 To UBound(Items)
                cl.Offset(0, i + 1).Value = Items(i)
            Next

            ' Move to next row
            Set cl = cl.Offset(1, 0)
        Loop

        ' Clean up
        FileText.Close
    Next file

    Set FileText = Nothing
    Set file = Nothing
    Set folder = Nothing
    Set fso = Nothing

End Sub

1 个答案:

答案 0 :(得分:2)

选项1预先阅读第一行

在开始Do While循环之前,请添加以下行:

If Not FileText.AtEndOfStream Then TextLine = FileText.ReadLine

这样你就会读到第一行(如果有的话)而你的Do While循环只会读取后续行

选项2之后删除excel中的第一行

另一种解决方案可能是在脚本导入所有文件后删除excel中的第一行。

您可能必须具体说明这适用于哪些列,因为我不确定活动导入是否是唯一的(否则您将删除以前不应删除的导入值!