Excel VBA使用ExportAsFixedFormat创建PDF经常挂起

Excel VBA使用ExportAsFixedFormat创建PDF经常挂起,excel,vba,pdf-generation,Excel,Vba,Pdf Generation,我有一个过程,它接受一系列输入,检索一些数据,并在循环中生成PDF。 如果我在一个条目上测试它,它总是有效的。当我在循环中运行它时,它经常在某个点挂起。 我已经隔离了执行同一行时总是出现的问题: 范围(“打印区域”)。ExportAsFixedFormat类型:=xlTypePDF,文件名:=PDF文件名,质量:=xlQualityStandard,IncludeDocProperties:=True,IgnorePrintAreas:=False,OpenAfterPublish:=False

我有一个过程,它接受一系列输入,检索一些数据,并在循环中生成PDF。 如果我在一个条目上测试它,它总是有效的。当我在循环中运行它时,它经常在某个点挂起。
我已经隔离了执行同一行时总是出现的问题:

范围(“打印区域”)。ExportAsFixedFormat类型:=xlTypePDF,文件名:=PDF文件名,质量:=xlQualityStandard,IncludeDocProperties:=True,IgnorePrintAreas:=False,OpenAfterPublish:=False

我已确认问题不是我试图保存的文件名。 当我重复这个过程时,可以成功地生成相同的文件

我已经了解到,这个问题可能与打印机的可用性有关。 在尝试生成PDF之前,我已尝试打印出
Application.ActivePrinter
,但在成功尝试和挂起Excel之前,我得到了相同的结果

我在Windows10中运行的MicrosoftExcelforMicrosoft365 MSO-64位上遇到了这个问题


如果您能给我一些建议来解决这个问题,我将不胜感激。

我解决了自己的问题


事实证明,问题的根源是在生成PDF的过程开始时尚未完成的数据检索。一旦我确定在PDF过程中不可能有新数据到达,问题就消失了。

假设下一个循环在第一个循环完成之前就开始了,您可以尝试在该点插入一个循环,直到安全创建上一个PDF为止。感谢建议变量,但是,生成PDF的调用是同步的,因此在上一个PDF完成之前不可能启动另一个PDF。