VBA Excel.xlsx(.xlsm)到.docx的转换
下午好 我想将.xslx文件转换为word。因为我需要准确地获取所有内容(我有27张带有标签、选项卡、图像等的表单),所以我决定先将其保存为PDF文档,这样效果很好。之后,我希望将其转换为.docx文件,因为PDF到docx的转换也保留了所有这些功能。 因为PDF将每个工作表视为一个单独的页面,所以我希望它在Word中完全相同,所有内容都保持原始excel文档的完整性 我在这里找到了很好的PDF到DOCX转换指南 按照所有这些步骤,我已经使代码正常工作了。 但是,接下来,当我尝试将此代码与另存XLSX为PDF宏组合时,我遇到了一个错误:类型不匹配,指示以下行:VBA Excel.xlsx(.xlsm)到.docx的转换,excel,vba,pdf,ms-word,Excel,Vba,Pdf,Ms Word,下午好 我想将.xslx文件转换为word。因为我需要准确地获取所有内容(我有27张带有标签、选项卡、图像等的表单),所以我决定先将其保存为PDF文档,这样效果很好。之后,我希望将其转换为.docx文件,因为PDF到docx的转换也保留了所有这些功能。 因为PDF将每个工作表视为一个单独的页面,所以我希望它在Word中完全相同,所有内容都保持原始excel文档的完整性 我在这里找到了很好的PDF到DOCX转换指南 按照所有这些步骤,我已经使代码正常工作了。 但是,接下来,当我尝试将此代码与另
Set fo = fso.GetFolder(pdf_path)
而我的完整代码如下所示:
Sub xlstodoc()
'SAVING XLSM FILE AS PDF
ThisWorkbook.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
ThisWorkbook.Path & "\" & ThisWorkbook.Name, _
Quality:=xlQualityStandard, IncludeDocProperties:=True, _
IgnorePrintAreas:=False, OpenAfterPublish:=True
'CONVERTING PDF FILE INTO DOCX
Dim fso As New FileSystemObject
Dim fo As Folder
Dim f As File
Dim wa As New Word.Application
Dim doc As Word.Document
wa.Visible = True
Dim pdf_path As String
Dim word_path As String
pdf_path = ThisWorkbook.Path & "\" '& ThisWorkbook.Name & ".pdf"
word_path = ThisWorkbook.Path & "\"
Set fo = fso.GetFolder(pdf_path)
For Each f In fo.Files
Set doc = wa.Documents.Open(f.Path)
doc.SaveAs2 (word_path & "\" & Replace(f.Name, ".pdf", ".docx"))
doc.Close False
Next
wa.Quit
Application.StatusBar = ""
MsgBox "All done"
Sheets("Frontsheet").Select
End Sub
Youtube示例适用于固定文件夹。在我的例子中,我需要与我正在处理的活动工作表相同的目标目录。如何才能使此代码成功?我想,我已经非常接近解决方案了。我猜您引用了另一个具有文件夹对象的库。完全限定您的类型应该可以解决这个问题
Dim fso As New Scripting.FileSystemObject
Dim fo As Scripting.Folder
Dim f As Scripting.File
您可以完全消除fo
对象:
For Each f In fso.GetFolder(pdf_path).Files
If fso.GetExtensionName(f) = "pdf" Then
Set doc = wa.Documents.Open(f.Path)
doc.SaveAs2 (word_path & "\" & Replace(f.Name, ".pdf", ".docx"))
doc.Close False
End If
Next
如果fso.GetExtensionName=“pdf”,那么-argument not optional它的解决方案是什么?