【发布时间】:2017-11-08 14:43:24
【问题描述】:
从以下两个示例文件中,我只想将所有以#COLUMNINFO 开头的行读入一个 excel 文件,并且每行都使用逗号作为分隔符分隔。
我很难只读取这些行,因为每个文件的行号都会改变。到目前为止,我的尝试是使用类似于以下代码的一段代码:
Do Until ts.ReadLine = "#COLUMN= " & [?]
Loop
并从该行开始读取文件,但我似乎无法将通配符与 .ReadFile 结合使用。
欢迎任何帮助。
我已经编辑了我的代码,这是更新后的结果。不知何故,“Do While 循环”失败了。
编辑:
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
【问题讨论】:
-
你的想法是正确的。看看
Instr函数。或者,如果您想要通配符,请查看Like运算符。 -
如果答案解决了您的问题,请考虑accepting it,点击复选标记并点击向上箭头投票。这向更广泛的社区表明您已经找到了解决方案。没有义务这样做。
标签: vba text-files wildcard