closures工作簿时的VBA Excel操作

当有人closures文件时,是否可以自动让Excel做一个动作?

我很新的VBA一个stackoverflow,所以请有怜悯..

情况:我有一个Excel文件,也用于其他几个人。 这个文件发布mhtml文件保存。 这个mhtml文件将被保存为昨天的date,如“仪表板2015-01-12”。 在mhtml文件中看到的数据必须包含与文件名相关的date。 所看到的数据取决于这个excel文件G2中的单个单元格

我想Excel文件做到这一点:改变一个单元格(G2)到昨天的date。 然后保存它。 然后closures它

我想要完成这个动作:当有人正在closures文件时

代码已经有了:

  Sub sbWriteCellWhenClosing()

工作簿(“BOOK1.XLS”)。closuresSaveChanges:= True
范围(“G2”)=格式(现在 -  2,dd  -  mm  -  yy)

结束小组 

编辑:

这会做这个工作吗?

 Private Sub Workbook_BeforeClose(取消为布尔)
  范围(“G2”)=格式(现在 -  1,dd  -  mm  -  yy)
    ActiveWorkbook.Close SaveChanges:= True
结束小组

这是使用工作簿代码:

 Option Explicit Private Sub Workbook_BeforeClose(Cancel As Boolean) Call sbWriteCellWhenClosing End Sub 

在一个单独的模块中:

 Sub sbWriteCellWhenClosing() ActiveSheet.Range("G2") = Format(Now - 1, "dd-mm-yy") '-1 for yesterday ActiveWorkbook.Save End Sub 

您应该使用Workbook.BeforeClose事件: http : //msdn.microsoft.com/en-us/library/office/ff194765%28v=office.15%29.aspx

要在VBA编辑器的项目窗口中执行此操作,您必须使用ThisWorkbook并将您的代码放在那里。 您的代码只能用于以这种方式修改的工作簿。