简体   繁体   中英

How to extract specific lines of data from a text file using vba

我正在尝试读取的数据 I am trying to extract specific data from a text file into an excel sheet, I can import the data as a whole but want to only extract certain lines of data depending on certain criteria.

Sub ReadText()
    Dim myFile As String

    myFile = Application.GetOpenFilename()

    Open myFile For Input As #1

    row_number = 0

    Do Until EOF(1) ' Check for end of file.
        Line Input #1, LineFromFile

        LineItems = Split(LineFromFile, ",")

        ActiveCell.Offset(row_number, 0).Value = LineItems(0)
        ActiveCell.Offset(row_number, 1).Value = LineItems(1)
        ActiveCell.Offset(row_number, 2).Value = LineItems(2)
        ActiveCell.Offset(row_number, 3).Value = LineItems(3)

        row_number = row_number + 1
    Loop

    Close #1 ' Close file.
End Sub

EDIT The criteria I am looking for are"Ana_Input_Data", "Alarms_From_Analogue_SP" and "Motor_Type_1_SCADA_DATA".

Maybe you can add an if statement like below..

Sub ReadText()
    Dim myFile As String

    myFile = Application.GetOpenFilename()

    Open myFile For Input As #1

    row_number = 1

    Do Until EOF(1) ' Check for end of file.
        Line Input #1, LineFromFile

        LineItems = Split(LineFromFile, ",")

If ActiveCell.Offset(row_number, 3).Value = "Ana_Input_Data" And ActiveCell.Offset(row_number, 3).Value = "Alarms_From_Analogue_SP" And ActiveCell.Offset(row_number, 3).Value = "Motor_Type_1_SCADA_DATA" Then
        ActiveCell.Offset(row_number, 0).Value = LineItems(0)
        ActiveCell.Offset(row_number, 1).Value = LineItems(1)
        ActiveCell.Offset(row_number, 2).Value = LineItems(2)
        ActiveCell.Offset(row_number, 3).Value = LineItems(3)
    End If
        row_number = row_number + 1

    Loop

    Close #1 ' Close file.
End Sub

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM