Excel VBA 使用 ExportAsFixedFormat 创建 PDF 经常挂起
Posted
技术标签:
【中文标题】Excel VBA 使用 ExportAsFixedFormat 创建 PDF 经常挂起【英文标题】:Excel VBA Create PDF using ExportAsFixedFormat frequently hangs 【发布时间】:2021-06-28 02:13:26 【问题描述】:我有一个过程,它接受一系列输入,检索一些数据,并在循环中生成 PDF。 如果我在一个条目上测试它,它总是有效的。当我在循环中运行它时,它经常在某个时候挂起。 我已经隔离了执行同一行时总是发生的问题:
Range("Print_Area").ExportAsFixedFormat Type:=xlTypePDF, Filename:=PDF_filename, Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
我已确认问题不是我要保存的文件名。 当我重复该过程时,可以成功生成相同的文件。
我了解到此问题可能与打印机的可用性有关。
在尝试生成 PDF 之前,我曾尝试打印出 Application.ActivePrinter
,但在成功尝试和挂起 Excel 之前我得到了相同的结果。
我在 Microsoft Excel for Microsoft 365 MSO - 64 bit 在 Windows 10 中运行时遇到了这个问题。
如果有任何解决此问题的建议,我将不胜感激。
【问题讨论】:
假设下一个循环在第一个循环完成之前开始,您可能会尝试在该点插入一个循环,该循环一直运行直到前一个 PDF 被安全创建。 感谢 Variatus 的建议,但是生成 PDF 的调用是同步的,因此在前一个 PDF 完成之前无法启动另一个 PDF。 【参考方案1】:我解决了我自己的问题。
事实证明,问题的根源在于 PDF 生成过程开始时尚未完成的数据检索。一旦我确保在 PDF 过程中不可能有新数据到达,问题就消失了。
【讨论】:
以上是关于Excel VBA 使用 ExportAsFixedFormat 创建 PDF 经常挂起的主要内容,如果未能解决你的问题,请参考以下文章
excel2013使用vba代码提示未找到提供程序,改程序可能未正确安装怎么处理