excel 2013以编程方式打开工作簿,刷新数据并打印工作簿

时间:2019-03-13 16:52:53

标签: excel vba

我不是excel vba的新手,实际上我是应用程序开发人员。但是,我已经尝试了一段时间。我似乎遇到的问题是,工作簿数据链接在打印之前不会刷新数据,因此我只能使用工作簿的最后数据,而不是刷新后的数据。

如果我手动打开工作簿,它们会更新,我可以用这种方式打印。这将为该过程增加一些时间(我必须进行大量打印,这就是为什么我尝试以编程方式进行此操作的原因)。我希望有人能让我知道我所缺少的痛苦的简单步骤。


更多信息:

我有一系列的工作簿。

  1. 数据源结合了几个手动更新的数据源并保存了工作簿。
  2. 控制工作簿(保存和关闭数据源后,我将从此处打印所有其他工作簿)
  3. 5种不同的工作簿,用新数据打印,每个工作簿都具有直接单元格引用和数据源工作簿的vlookup公式。

仅供参考,我尝试将其制作为单个工作簿,并且大小超过5 MB,这经常导致锁定,因此使其成为不可接受的选项。

我的过程是:

  • 我打开数据源工作簿,进行更新,刷新,保存和关闭。现在
  • 我打开控制工作簿。我单击一个按钮以运行宏以打印5 工作簿。

代码:

这是执行打印的子项。

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

0 个答案:

没有答案