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

时间:2015-05-12 09:10:22

标签: vba ms-word word-vba

我正在将一些旧的Macros从Word 2003转换为Word 2013.我认为我只需要构建一个花哨的Ribbon Bar并完成它,但显然不是。

以下代码应该读取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中使用相同的文件工作正常。

1 个答案:

答案 0 :(得分:0)

根据您的错误,我建议您一次读取一行文本文件,循环直到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