使用 VBA 读取 TXT 文件突然不起作用了

Reading a TXT File with VBA suddenly doesn't work anymore

我正在将一些旧宏从 Word 2003 转换为 Word 2013。我以为我只需要构建一个花哨的功能区栏就可以了,但显然不是。

下面的代码应该读取 TXT 文件的全部内容并将其放入剪贴板。 这就是我创建对象并调用我的函数的方式:

Dim MyData As DataObject
Set MyData = New DataObject
MyData.SetText LoadTextFile("C:\TESTDOCS\readthisfile.txt")
MyData.PutInClipboard

这是实际的功能:

 Public Function LoadTextFile(sFile As String) As String
    Dim iFile As Integer
    On Local Error Resume Next

    iFile = FreeFile

    Open sFile For Input As #iFile

    LoadTextFile = Input$(LOF(iFile), iFile)
    Close #iFile


 End Function

之后我收到以下错误:

Run-time error '-2147024809 (80070057)':
DataObject:SetText Invalid Argument.

正如我所说:这段代码在 Word 2003 中使用相同的文件工作得很好。

根据您的错误,我建议您一次一行地读取文本文件,循环直到 EOF(文件结尾)。这会给你更多的灵活性。以下是您需要如何修改 LoadTextFile 方法以使其正确,

Public Function LoadTextFile(sFile As String) As String
On Error GoTo errHandler
    Dim iFile As Integer, strIn As String, tmpStr As String

    Open sFile For Input As #iFile

    Do While Not EOF(iFile)
        Line Input #iFile, tmpStr
        strIn = strIn & tmpStr
    Loop

    LoadTextFile = strIn
exitHandler:
    Close #iFile
    Exit Function
errHandler:
    MsgBox "Error (" & Err.Number & ") - " & Err.Description & vbCrLf & vbCrLf & "Exiting LoadTextFile Method.", vbInformation
    Resume exitHandler
End Function