我不是excel vba的新手,实际上我是应用程序开发人员。但是,我已经尝试了一段时间。我似乎遇到的问题是,工作簿数据链接在打印之前不会刷新数据,因此我只能使用工作簿的最后数据,而不是刷新后的数据。
如果我手动打开工作簿,它们会更新,我可以用这种方式打印。这将为该过程增加一些时间(我必须进行大量打印,这就是为什么我尝试以编程方式进行此操作的原因)。我希望有人能让我知道我所缺少的痛苦的简单步骤。
更多信息:
我有一系列的工作簿。
仅供参考,我尝试将其制作为单个工作簿,并且大小超过5 MB,这经常导致锁定,因此使其成为不可接受的选项。
我的过程是:
代码:
这是执行打印的子项。
Sub ProcessFile(FileName)
Workbooks.Open (FileName)
ActiveWorkbook.RefreshAll 'Refresh the data.
ActiveWorkbook.PrintOut 'Print the worksheet
ActiveWorkbook.Close False 'Close without saving
End Sub
这些是调用sub的示例行。
ProcessFile "C:\User\Desktop\Year End Page 1.xlsx"
ProcessFile "C:\User\Desktop\Year End Page 2.xlsx"
该过程将根据需要打印所有工作簿,但不会刷新数据链接。
由于没有连接,因此背景刷新不适用。
链接更新是自动的。
RefreshAll之后的DoEvents没有帮助。
我已经搜索了答案,并且浏览了100多个页面,但是似乎没有一个答案是我需要的。
在CST下午3:12编辑 还尝试了几种不同的方法来暂停,这没有效果。 GH