从以下两个示例文件中,我希望只将所有以#COLUMNINFO开头的行读入excelfile,并使用逗号作为分隔符分隔每一行。
由于每个文件的行号发生变化,我只能读取这些行。到目前为止,我的尝试是使用类似于:
的代码Do Until ts.ReadLine = "#COLUMN= " & [?]
Loop
然后从该行读取文件,但我似乎无法将通配符与.ReadFile结合使用。
欢迎任何帮助。
我已编辑了我的代码,这是更新后的结果。不知怎的,“在做循环”#39;失败。
编辑:
Sub InfoExtractorTest()
Dim fso As Scripting.FileSystemObject
Dim ts As Scripting.TextStream
Dim textline As String
Dim CommaPosition As Integer
Set fso = New Scripting.FileSystemObject
Set ts = fso.OpenTextFile(Environ("Userprofile") & "\Desktop\VBA Test\GEFExtractor\Example GEF's\362B-S142.gef")
Do While Not ts.AtEndOfStream
'Reads indiviual lines from file
Data = ts.ReadLine
If InStr(1, UCase(Data), "#COLUMNINFO") > 0 Then
textline = ts.ReadLine
CommaPosition = InStr(textline, ",")
Do Until CommaPosition = 0
ActiveCell.Value = Left(textline, CommaPosition - 1)
ActiveCell.Offset(0, 1).Select
textline = Right(textline, Len(textline) - CommaPosition)
CommaPosition = InStr(textline, ",")
Loop
ActiveCell.Value = textline
ActiveCell.Offset(1, 0).End(xlToLeft).Select
End If
Loop
ts.Close
Set fso = Nothing
End Sub
答案 0 :(得分:0)
答案 1 :(得分:0)
如果我正确理解您的问题,请尝试以下操作:
Do While Not ts.AtEndofStream
data = ts.ReadLine
If InStr(1, UCase(data), "#COLUMNINFO") > 0 then
'do something
End If
Loop
ts.close
我假设您正在使用FileSystemObject
来阅读该文件。