使用vba读取整个文本文件

San*_*ket 12 excel vba

我正在尝试使用vba读取文本文件.我尝试了下面的代码

Open "C:\tester.txt" For Input As #1
Worksheets("UI").Range("H12").Value = Input$(LOF(1), 1)
Close #1
Run Code Online (Sandbox Code Playgroud)

当我运行这个时,我收到了一个错误.

运行时错误'62'.输入文件的结尾.

文本文件的内容是:

无法打开COM10.确保它是连接
加上其他的东西
和更多的东西
更多的东西

在此先感谢您的帮助.

bre*_*tdj 15

您可以将整个文件读取到变量数组中,然后将其转储为单个数据,而不是逐个单元循环.射击

将路径更改C:\temp\test.txt为适合.

Sub Qantas_Delay()
Dim objFSO As Object
Dim objTF As Object
Dim strIn 'As String
Dim X

Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objTF = objFSO.OpenTextFile("C:\temp\test.txt", 1)
strIn = objTF.readall
X = Split(strIn, vbNewLine)
[h12].Resize(UBound(X) + 1, 1) = Application.Transpose(X)
objTF.Close

End Sub
Run Code Online (Sandbox Code Playgroud)


Net*_*loh 7

以下代码将循环遍历文本文档中的每一行,H12并在UI工作表中从范围和向下打印这些代码.

Sub ImportFromText()
    Open "C:\tester.txt" For Input As #1
    r = 0
    Do Until EOF(1)
        Line Input #1, Data
        Worksheets("UI").Range("H12").Offset(r, 0) = Data
        r = r + 1
    Loop
    Close #1
End Sub
Run Code Online (Sandbox Code Playgroud)

  • 出现这两个字符是因为您正在阅读 unicode 文本文档。为了避免这种情况,您必须使用可以打开和理解 unicode 格式的 `OpenTextFile` 方法。但是,这与您现在使用的语法完全不同。 (2认同)

小智 6

对于那些不喜欢VBA必须组成显式变量然后浪费时间将数据传输给他们的人来说,稍微修改了一下.做好这份工作

Function LoadFileStr$(FN$)

  With CreateObject("Scripting.FileSystemObject")

          LoadFileStr = .OpenTextFile(FN, 1).readall

        End With

End Function
Run Code Online (Sandbox Code Playgroud)


Fid*_*del 5

brettdj 的回答,略有调整

Public Function readFileContents(ByVal fullFilename As String) As String
    Dim objFSO As Object
    Dim objTF As Object
    Dim strIn As String

    Set objFSO = CreateObject("Scripting.FileSystemObject")
    Set objTF = objFSO.OpenTextFile(fullFilename, 1)
    strIn = objTF.readall
    objTF.Close

    readFileContents = strIn
End Function
Run Code Online (Sandbox Code Playgroud)