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