我有一个文本文件,其中包含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
旗帜......我该如何做到这一点?也许是因为输入文件太大了?
任何想法或建议都会很棒!
答案 0 :(得分:3)
Input
移动"指针"因为它读取文件。
您在此处阅读整个文件:
FileContent = Input(LOF(TextFile), TextFile)
然后再来一次:
UserForm1.TextBox1 = Input(LOF(TextFile), TextFile)
但到那时FileContent
已经包含了您的全部内容,文件句柄#TextFile
已经在EOF中。因此,当您再次尝试输入时,您输入文件末尾。
阅读后立即关闭文件,然后执行UserForm1.TextBox1 = FileContent
。
无需[尝试]两次读取文件: 将所有内容读入FileContent
。 MsgBox
截断它的原因是因为,MsgBox
(就像一个单元格)没有为此做出,并且具有最大内容长度。 TextBox1
应该能够处理它(除非你给它一个MaxLength
值。)