将文本文件输入Excel表单

时间:2017-11-08 17:57:06

标签: vba excel-vba userform excel

我有一个文本文件,其中包含30行到1000行数据,每行包含10到200个字符。我在初始化时尝试将此数据输入到用户表单的文本框中。

我现在正在使用的代码......

Private Sub UserForm_Initialize()

    Dim TextFile As Integer
    Dim FilePath As String
    Dim FileContent As String

    FilePath = "C:\PATH\MyText.txt"

    TextFile = FreeFile

    Open FilePath For Input As TextFile

    FileContent = Input(LOF(TextFile), TextFile)

    'MsgBox FileContent
    UserForm1.TextBox1 = Input(LOF(TextFile), TextFile)

    Close TextFile

End Sub

当我尝试将数据输出到MsgBox(但不显示所有数据)时,它工作正常,但当我尝试将其输出到TextBox时,我得到错误...

  

运行时错误' 62':

     

输入文件的结尾

我猜这里没有准备好EOF旗帜......我该如何做到这一点?也许是因为输入文件太大了?

任何想法或建议都会很棒!

1 个答案:

答案 0 :(得分:3)

Input移动"指针"因为它读取文件。

您在此处阅读整个文件:

FileContent = Input(LOF(TextFile), TextFile)

然后再来一次:

UserForm1.TextBox1 = Input(LOF(TextFile), TextFile)

但到那时FileContent已经包含了您的全部内容,文件句柄#TextFile已经在EOF中。因此,当您再次尝试输入时,您输入文件末尾

阅读后立即关闭文件,然后执行UserForm1.TextBox1 = FileContent

无需[尝试]两次读取文件: 将所有内容读入FileContentMsgBox截断它的原因是因为,MsgBox(就像一个单元格)没有为此做出,并且具有最大内容长度。 TextBox1应该能够处理它(除非你给它一个MaxLength值。)