wordTemplate = "c:\someTemplate.docx"
Set objWord = CreateObject("Word.Application")
objWord.Visible = True
objWord.documents.Add Template:=wordTemplate, NewTemplate:=False, DocumentType:=0
'''here I iterate and do stuffs, and then:'''
With objWord.ActiveDocument
.SaveAs Filename:=("somePath" & "aName"), FileFormat:=wdFormatPDF
.Close
End With
With objWord
.Quit
End With
这导致.docx文件。 ¿不应该wdFormatPDF给我一个PDF吗?
编辑: 我将.SaveAs行修改为:
.SaveAs Filename:=(Hoja1.Range("N6").Text & Hoja1.Range("A1") & ".pdf"), FileFormat:=wdFormatPDF
和
.SaveAs2 Filename:=(Hoja1.Range("N6").Text & Hoja1.Range("A1") & ".pdf"), FileFormat:=wdFormatPDF
但都会生成无法呈现的.pdf文件。
答案 0 :(得分:2)
你得到的东西取决于你传递的东西" aName"。例如,如果它包含.docx扩展名,则您的PDF将具有无效的.docx扩展名。
您是否为此使用SaveAs或SaveAs2没有任何区别。
答案 1 :(得分:1)
你需要像这样使用SaveAs2
方法(测试它是否有效):
wordTemplate = "c:\someTemplate.docx"
Set objWord = CreateObject("Word.Application")
objWord.Visible = True
objWord.documents.Add Template:=wordTemplate, NewTemplate:=False, DocumentType:=0
'''here I iterate and do stuffs, and then:'''
With objWord.ActiveDocument
.SaveAs2 "C:\test\MyDoc.pdf", 17
'.SaveAs Filename:=("c:\test\" & "test"), FileFormat:=wdFormatPDF
.Close
End With
With objWord
.Quit
End With
答案 2 :(得分:0)
好吧,我的问题与语法有关:
这不起作用:
.SaveAs Filename:=(Hoja1.Range("N6").Text & Hoja1.Range("A1") & ".pdf"), FileFormat:=wdFormatPDF
这样做的时候:
.SaveAs (Hoja1.Range("N6").Text & Hoja1.Range("A1") & ".pdf"), 17
问题是,在更改之后,
.Close
下一行中的要求我将更改保存到原始文档中(以前效果很好)。它迫使我明确放弃这样的更改:
.Close _
SaveChanges:=wdDoNotSaveChanges
最终解决方案是:
With objWord.ActiveDocument
.SaveAs (Hoja1.Range("N6").Text & Hoja1.Range("A1") & ".pdf"), 17
.Close _
SaveChanges:=wdDoNotSaveChanges
End With