使用Late Binding将Word另存为PDF时出现参数错误求助
解决Late Binding下Word VBA ExportAsFixedFormat的参数错误问题
这个问题我太熟了!Late Binding下踩过这个坑的人不少~你遇到的「Invalid procedure call or argument」错误,核心原因很简单:
在Early Binding模式下,VBA会自动引用Word对象库,里面的内置常量(比如wdExportFormatPDF)会被识别成对应的数值;但切换到Late Binding后,你没有引用Word库,VBA压根不知道wdExportFormatPDF是什么东西,自然会把它当成无效参数。
两种快速解决方法:
方法1:手动定义常量
在你的代码模块开头,先定义这个常量的数值(Word对象模型里wdExportFormatPDF的固定值是17):
Const wdExportFormatPDF As Long = 17
之后你原来的代码就可以正常运行了:
PlikW.ExportAsFixedFormat OutputFileName:=Katalog & "\" & Marka & ".pdf", ExportFormat:=wdExportFormatPDF, OpenAfterExport:=False
方法2:直接使用数值代替
嫌定义常量麻烦?直接把wdExportFormatPDF换成它对应的数值17就行:
PlikW.ExportAsFixedFormat OutputFileName:=Katalog & "\" & Marka & ".pdf", ExportFormat:=17, OpenAfterExport:=False
额外提醒:
如果你还用到其他Word内置常量(比如导出选项里的wdExportOptimizeForOnScreen之类的),同样需要手动定义或者用对应数值,Late Binding模式下所有Word预定义常量都不会自动生效哦~
内容的提问来源于stack exchange,提问作者Arkadiusz
相关产品推荐
相关产品推荐

