我試圖使用VBA編碼 - 我很新 - 從PDF(它不是圖像)獲取一系列.doc文檔,也就是我我試圖循環播放各種PDF文件並將它們保存爲MS Word格式。我的經驗是,這個詞很好地閱讀了我所擁有的PDF文檔:word大部分時間保持了PDF文件的正確佈局。我不確定這是否是解決這個問題的正確選擇,我想要一個替代建議 - 如果可能的話使用R。將PDF文件循環並將其轉換爲文檔
總之,這裏是我發現here代碼:
Sub convertToWord()
Dim MyObj As Object, MySource As Object, file As Variant
file = Dir("C:\Users\username\work_dir_example" & "*.pdf") 'pdf path
Do While (file <> "")
ChangeFileOpenDirectory "C:\Users\username\work_dir_example"
Documents.Open Filename:=file, ConfirmConversions:=False, ReadOnly:= _
False, AddToRecentFiles:=False, PasswordDocument:="", PasswordTemplate:= _
"", Revert:=False, WritePasswordDocument:="", WritePasswordTemplate:="", _
Format:=wdOpenFormatAuto, XMLTransform:=""
ChangeFileOpenDirectory "C:\Users\username\work_dir_example"
ActiveDocument.SaveAs2 Filename:=Replace(file, ".pdf", ".docx"), FileFormat:=wdFormatXMLDocument _
, LockComments:=False, Password:="", AddToRecentFiles:=True, _
WritePassword:="", ReadOnlyRecommended:=False, EmbedTrueTypeFonts:=False, _
SaveNativePictureFormat:=False, SaveFormsData:=False, SaveAsAOCELetter:= _
False, CompatibilityMode:=15
ActiveDocument.Close
file = Dir
Loop
End Sub
在開發商的窗口粘貼後,我保存代碼模塊中 - >我關閉開發者的窗口 - >我點擊「宏」按鈕 - >我執行「convertToWord」宏。在彈出框中出現以下錯誤:「Sub or Function not defined」。我該如何解決?此外,由於某些原因,我現在還不清楚,我得到了一個與功能ChangeFileOpenDirectory
有關的錯誤,這個錯誤似乎也沒有定義。
更新27/08/2017
我改變了代碼如下:
Sub convertToWord()
Dim MyObj As Object, MySource As Object, file As Variant
file = Dir("C:\Users\username\work_dir_example" & "*.pdf")
ChDir "C:\Users\username\work_dir_example"
Do While (file <> "")
Documents.Open Filename:=file, ConfirmConversions:=False, ReadOnly:= _
False, AddToRecentFiles:=False, PasswordDocument:="", PasswordTemplate:= _
"", Revert:=False, WritePasswordDocument:="", WritePasswordTemplate:="", _
Format:=wdOpenFormatAuto, XMLTransform:=""
ActiveDocument.SaveAs2 Filename:=Replace(file, ".pdf", ".docx"), FileFormat:=wdFormatXMLDocument _
, LockComments:=False, Password:="", AddToRecentFiles:=True, _
WritePassword:="", ReadOnlyRecommended:=False, EmbedTrueTypeFonts:=False, _
SaveNativePictureFormat:=False, SaveFormsData:=False, SaveAsAOCELetter:= _
False, CompatibilityMode:=15
ActiveDocument.Close
file = Dir
Loop
End Sub
現在我沒有得到一個彈出框任何錯誤消息,但沒有輸出在我的工作目錄中。它現在可能有什麼問題?
(一)是'迪爾( 「C:\用戶\ ... T」 和 「* .PDF」) '暗示你的目錄以't'結尾?如果是這樣,那應該說'Dir(「C:\ Users \ ... t」和「* .pdf」)'(或者,爲了節省一點處理時間,'Dir(「C:\ Users \ ...牛逼\ *。PDF格式「)')。 (b)我不知道爲什麼'ChangeFileOpenDirectory'會失敗,除了你指定的目錄不存在或者你沒有權限訪問它。 – YowE3K
只需刪除兩個'ChangeFileOpenDirectory ...'行。使用完整路徑打開並保存文件 – jsotola
我嘗試了一些建議。我會更新這個問題。 –