VBA使用线路输入时如何从下面的行获取文本?

时间:2017-06-08 18:16:20

标签: vba excel-vba excel

我正在尝试将保存为.txt文件的电子邮件中的复制信息提供给Excel工作表。 我遇到的问题是当我使用带有行输入功能的Do循环时,我无法从当前行上没有的文本行中获取信息。我还希望代码复制包含deliminator的行。

这是我正在使用的代码:

XMLHttpRequest

1 个答案:

答案 0 :(得分:2)

我最喜欢的方法也比循环遍历文件内容更快的方法是一次性将文件中的整个文本读入数组,然后使用数组。这也可以让您更好地控制从您想要的2行中检索文本。

这是你在尝试什么? (的未测试

Dim MyData As String, strData() As String
Dim i As Long

intFreefile = FreeFile

'~~> Open file and read it on one go
Open ThisWorkbook.Path & "\temp567.txt" For Binary As #intFreefile
MyData = Space$(LOF(1))
Get #intFreefile, , MyData
Close #intFreefile '<~~ Close the text file after reading from it

'~~> This array has the entire contents from the text file
strData() = Split(MyData, vbCrLf)

For i = LBound(strData) To UBound(strData)
    '~~> Last character in line = deliminator
    If Right(strData(i), 1) = strDelimiter Then
        Debug.Print strData(i)
        Debug.Print strData(i + 1)
        Debug.Print strData(i + 2)
    '~~> Else if the deliminator is somewhere else
    ElseIf InStr(1, strData(i), strDelimiter) Then
        Debug.Print strData(i)
    End If
Next i