我正在尝试使用VBA在Access中读取文本文件。代码如下:
Open "C:\Test\test.txt" For Input As #1
Dim MyString as String
Dim x as integer
x = 0
For x = 0 to 100
Input #1, MyString
MsgBox MyString
Next x
所以这段代码的目的是迭代遍历文本文件,逐行读取并打印出来。但是文本行有可能超过255个字符。有没有办法读取超过255个字符的行并将它们存储在VBA中?谢谢。
编辑:文本文件示例
1110; TESTING ; 1111; TESTING2 ; 5; 999990981; 10-30-2011; 12-01-2011; 133370001; 133370001; 133370001; 133370001; 133370001; 133370001; 133370001; 133370001; 133370001; 133370001; 133370001; 133370001; F; 13371; 1; TEST1 ; 000000000; 133370001; 0; TEST ; TESTTES ; TEST ; 501; 10001; 0; 00001;
1112; TESTING ; 1113; TESTING2 ; 3; 999990982; 10-02-2011; 10-30-2011; 133370002; 133370002; 133370002; 133370002; 133370002; 133370002; 133370002; 133370002; 133370002; 133370002; 133370002; 133370002; F; 13372; 2; TEST2 ; 000000000; 133370002; 0; TEST1 ; TESTTESTT ; TES ; 502; 10002; 0; 00002;
1113; TESTING ; 1114; TESTING2 ; 21; 999990983; 03-01-2011; 10-02-2011; 133370003; 133370003; 133370003; 133370003; 133370003; 133370003; 133370003; 133370003; 133370003; 133370003; 133370003; 133370003; F; 13373; 3; TEST3 ; 000000000; 133370003; 0; TTESTTESTT ; TESTTESTTES ; TESTTES ; 503; 10003; 0; 00003;
答案 0 :(得分:2)
Sub ReadLines()
Dim sInput As String
Dim i As Long
Open "C:\Users\dick\test.txt" For Input As #1
Do While Not EOF(1)
Input #1, sInput
Debug.Print Len(sInput), sInput
Loop
End Sub
我得到了
468 1110; ...
469 1112; ...
469 1113; ...
所以我没有看到这种限制
答案 1 :(得分:0)
使用Input #
让我很难过,这似乎很奇怪。我没有收到错误,但我收到了一些字符串。我试着查看文本的每一行,看看是否有异常,但我找不到任何异常。最后,我尝试了@Matt Donnan使用TextStream的方法并且这项工作。谢谢大家,抱歉花时间。
答案 2 :(得分:0)
我认为问题与MsgBox的大小限制有关。 Debug.Print将打印到立即窗口(可通过Ctrl + G访问)。