我已經在Excel中創建了一個Visual Basic腳本來打開,抓取內容並關閉一個數字(超過一百)的Word文檔。代碼的我該如何解決這個Excel Visual Basic運行時錯誤'62'?
部分是:
Private Function GrabTextFile(ByVal file_name As String) As String
Dim fnum As Long
fnum = FreeFile()
Open file_name For Input As #fnum
GrabTextFile = Input$(LOF(fnum), #fnum)
Close #fnum
End Function
(的代碼的其餘部分在很大程度上基於this page from VB helper)
腳本上行失敗:
GrabTextFile = Input$(LOF(fnum), #fnum)
與消息:
Run-time error '62':
Input past end of file
它在文檔34上失敗。但是,如果我刪除特定文檔,然後重新運行該腳本,它將在該位置的新文檔上失敗。這意味着我有一個解放內存的問題(?)。
該代碼看起來不錯。當文件實際上是二進制文件或包含dbcs字符時,如果嘗試使用'For Input'進行讀取時,99%的時間會出現此錯誤,請嘗試'strconv(InputB(LOF(fnum),#fnum),vbUnicode)' –
@ AlexK。謝謝,但是當我嘗試Excel崩潰! – Wikis
您可以重命名文件,使當前文檔#34移動到位置#33,當前#33移到#34?這會告訴你,如果你有關於特定文檔的問題或用盡某些資源的問題 – barrowc