我正在将一些旧的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中使用相同的文件工作正常。
答案 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