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 经常挂起的主要内容,如果未能解决你的问题,请参考以下文章

请教,在Excel 中使用VBA查找问题。

如何用EXCEL的VBA控制WORD文档?

excel2013使用vba代码提示未找到提供程序,改程序可能未正确安装怎么处理

java 调用excel vba

使用 Excel VBA 实现复制 粘贴 和保存,并自动运行VBA

Excel 请问如何破解VBA工程不可查看