input文件结尾的VBA excel

我试图阅读文本文件(这些文件是由外部程序生成的,不能用tweeked)使用下面的macros。

While Not EOF(int_current_file) Line Input #int_current_file, buf If Left(buf, 1) <> "#" Then buf1 = Split(buf, "=") Print #int_master_file, CInt(Left(buf, 2)) & ";" & CInt(Mid(buf, 3, 4)) & ";" & CInt(Mid(buf, 7, 3)) & ";" & CInt(Mid(buf, 10, 1)) & ";" & CDbl(buf1(1) / 100000000) & ";" & CDate(file_date) & ";" & Mid(file_name, 4, 3) End If 'Line Input #int_current_file, buf 'Debug.Print Data Wend 

然而,在这个文件的第二行我有以下string:

=01082013=01072013=31072013=06082013=1640=380441=21=000001249=#02IFS86.G84=IFSSS5=7ҐK!Ђi—Љ42ЃЁ4№{¤Хo$]ґ•Хp Ё1‹;±~†ЁRLЌг‰®ґн нќРР^±>_‰

当macros试图读取这一行时, error 62发生Input past end of file

我该如何解决这个问题?

我可以以更好的方式读取VBA中的文本文件吗?

这将读取数组中的ONE GO中的整个文本文件,然后closures文件。 这样你就不需要随时保持文件的打开状态。

 Option Explicit Sub Sample() Dim MyData As String, strData() As String Dim i As Long '~~> Replace your file here Open "C:\MyFile.Txt" For Binary As #1 MyData = Space$(LOF(1)) Get #1, , MyData Close #1 strData() = Split(MyData, vbCrLf) ' '~~> Now strData has all the data from the text file ' For i = LBound(strData) To UBound(strData) Debug.Print strData(i) ' '~~> What ever you want here ' Next i End Sub