2015-01-13 144 views
2

有人可能会自动让Excel在某人关闭文件时执行操作吗?关闭工作簿时的VBA Excel操作

我是很新,VBA的计算器,所以请怜悯..

情况: 我有也用于BIJ其他几个人的Excel文件。该文件发布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 
+3

的可能重复的[闭合工作簿时删除范围,XLS VBA](HTTP:/ /stackoverflow.com/questions/6422693/deleting-range-when-closing-workbook-xls-vba) –

+1

尝试寻找'私人小组Workbook_BeforeClose(取消为布尔)' – Jens

+0

我想这会这样做。我现在应该关闭这个问题吗? – RiveR

回答

6

这是通过使用工作簿的代码:

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

这工作,非常感谢! – RiveR

相关问题