我正在尝试阅读整个文本文件,复制其所有文本并将其粘贴到最后的当前文档中。
Selection.EndKey Unit:=wdStory
hF = FreeFile()
Open "G:\a 1.txt" For Input As #hF
Selection.TypeText (Input$(LOF(hF), #hF))
Close #hF
这是从文本文件中复制文本,但它不是复制整个文件文本。它仅复制部分文件文本。某些文本文件正在发生这种情况。对于其他文本文件,它工作正常。你能告诉我这是什么原因吗?
答案 0 :(得分:2)
尝试使用此解决方案:
Selection.EndKey wdStory
Selection.InsertParagraphAfter 'optionally, add additional paragraph
Selection.InsertFile "G:\a 1.txt"
答案 1 :(得分:1)
更一般地说(KazJaw的解决方案在这里很完美),问题可能在于您正在读取unicode或类似的文本文件...每个字符超过1个8位字节。 LOF以字节为单位给出长度,但输入读取期望被告知要读取多少个字符。 InputB接受字节:
Dim lLength As Long
Dim sContents As String
Debug.Print "ASCII FILE"
Debug.Print FileLen("c:\temp\ascii.txt")
Open "c:\temp\ascii.txt" For Input As 1
Debug.Print LOF(1)
'Debug.Print Len(Input$(LOF(1), #1))
sContents = Input$(LOF(1), #1)
MsgBox sContents
Close #1
Debug.Print "UNICODE FILE"
Debug.Print FileLen("c:\temp\unicode.txt")
lLength = FileLen("c:\temp\unicode.txt")
Open "c:\temp\unicode.txt" For Binary As 2
Debug.Print LOF(2)
'Debug.Print Len(InputB(lLength, #2))
sContents = InputB(lLength, #2)
Debug.Print Len(sContents)
MsgBox sContents
Close #2