当有人关闭文件时,是否可以自动让Excel执行操作?
我对VBA是一个很新的堆栈溢出,所以请怜悯..
情况: 我有一个Excel文件,也用于bij其他几个人。此文件发布保存时的mhtml文件。这个mhtml文件将以昨天的日期保存,如“Dashboard 2015-01-12”。 mhtml文件中看到的数据必须包含与文件名相关的日期。看到的数据取决于此excel文件中的单个单元格G2
我希望Excel文件执行此操作: 将单个单元格(G2)更改为昨天的日期。然后保存它。然后关闭它
我希望这个动作完成: 有人关闭文件时
代码尚未:
Sub sbWriteCellWhenClosing() Workbooks("BOOK1.XLS").Close SaveChanges:=True Range("G2") = Format(Now - 2, dd - mm - yy) End Sub
编辑:
这会完成这项工作吗?
Private Sub Workbook_BeforeClose(Cancel As Boolean) Range("G2") = Format(Now - 1, dd - mm - yy) ActiveWorkbook.Close SaveChanges:=True End Sub
答案 0 :(得分:9)
这是使用工作簿代码:
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
答案 1 :(得分:2)
您应该使用Workbook.BeforeClose
事件:
http://msdn.microsoft.com/en-us/library/office/ff194765%28v=office.15%29.aspx
要在VBA编辑器的项目窗口中执行此操作,您必须使用ThisWorkbook并将代码放在那里。您的代码仅适用于以这种方式修改的工作簿。