输入过去的VBA excel文件结尾

输入过去的VBA excel文件结尾,vba,excel,Vba,Excel,我正在尝试使用以下宏读取文本文件(这些文件是由外部程序生成的,不能使用tweeked) 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)) & ";" &a

我正在尝试使用以下宏读取文本文件(这些文件是由外部程序生成的,不能使用tweeked)

    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
而不是EOF(int\u当前\u文件)
行输入#int#当前文件,buf
如果左(buf,1)“#”,则
buf1=拆分(buf,“=”)
打印#int#u master_文件,CInt(左(buf,2))&“&CInt(中(buf,3,4))&”&CInt(中(buf,7,3))&“&CInt(中(buf,10,1))&”&CDbl(buf1(1)/100000000)&“&CDate(文件日期)&”&Mid(文件名,4,3)
如果结束
'行输入#int#当前文件,buf
'调试.打印数据
温德
但是,在该文件的第二行,我有以下字符串:

=01082013=01072013=31072013=06082013=1640=380441=21=000001249=02IFS86.G84=IFSSS5=7ҐK!Ђi-Љ42Ѓ4№{ëo$]pЁ1è;±†rЌЌΓ

当宏试图读取此行时,出现
错误62
输入超过文件末尾


如何解决此问题?

您是否有兴趣了解一种更好的在VBA中读取文本文件的方法

这将以数组形式一次性读取整个文本文件,然后关闭该文件。这样,您就不需要一直打开该文件

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

你能对这段代码的和平发表评论吗:MyData=Space$(LOF(1))Get#1,MyData?
Space$(LOF(1))
创建一个与文件大小相同的字符串。
Space$
将字符串初始化为给定长度。顺便问一下,它对您有用吗?您好,我对在VBA中导入简单文本文件的困难感到震惊。直接从网站提取数据似乎比从文本文件导入数据更容易。您的这是我尝试过的第20个建议,它对我也不起作用。我只是尝试将重要的文本文件作为字符串,以便在生成的字符串上使用'Mid'和'InStr'函数。任何澄清都非常受欢迎。如果我尝试将strData放在文本框中,我会得到一个错误:“类型不匹配”我猜这是由于数组而不是字符串类型造成的?有解决方案吗?