[英]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. 我正在尝试将文本文件中的特定数据提取到excel工作表中,我可以将数据整体导入,但仅希望根据某些条件提取某些数据行。
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". 编辑我要寻找的条件是“ Ana_Input_Data”,“ Alarms_From_Analogue_SP”和“ Motor_Type_1_SCADA_DATA”。
Maybe you can add an if
statement like below.. 也许您可以添加如下的if
语句。
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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.