我如何自动化Excel文件刷新并通过电子邮件发送?

我有几个Excel文件(数据透视表和图表)有一个数据连接到Access数据库。 我希望做的是让他们自动刷新,并在每个月的第一天通过电子邮件发送。

我在Access中做了类似的事情,在那里我有一个数据库,其中有一个运行并通过电子邮件发送的查询。 我通过在数据库中创build一个表单来完成这项工作,当打开数据库时自动打开表单,然后在表单中使用VBA运行查询(DoCmd.OpenQuery),然后通过电子邮件发送(DoCmd.SendObject)

我可以用Excel文件做类似的事吗? 我想我可以将数据选项卡下的连接属性设置为“打开文件时刷新数据”,但假定用户有一个活动的networking连接,因为数据库位于服务器上。 此外,如果用户保存该文件并在将来再次打开它,它将具有当前数据而不是原始数据。

所以简而言之,我需要:

  1. 打开Excel文件
  2. 刷新数据
  3. 电子邮件文件

这就是我最终做的事情:

在Access中,我有一些Make Table查询使表(duh)将被Excel文件使用。 我创build了一个表单,当数据库打开时,它会自动打开,并在Form_Load()事件中,我把以下内容:

 With DoCmd .SetWarnings False .OpenQuery "My Query 1" .OpenQuery "My Query 2" .SetWarnings True End With Application.Quit 

在每个Excel文件中,我发现了一些在线的VBA代码来创buildPDF,然后通过电子邮件发送。 在Workbook_Open()事件中,我有以下内容:

 ActiveSheet.Unprotect ActiveWorkbook.Connections("MyConnection").Refresh ActiveSheet.Protect Call FunctionThatCreatesPDFAndEmails ActiveWorkbook.Close False 

然后,我把一些任务在Windows任务计划程序..一个打开Access数据库(这导致生成表查询运行,然后closures自己),然后为每个Excel文件,我需要更新和电子邮件一个任务。 所以现在我有Access更新源数据表,然后Excel打开每个文件,刷新数据,并通过电子邮件发送自己的PDF。 任务完成!