VBA Excel 关闭工作簿时的动作
VBA Excel action when closing workbook
是否可以在有人关闭文件时自动让Excel执行操作?
情况:
我有一个 Excel 文件,其他几个人也在使用它。此文件在保存时发布一个 mhtml 文件。此 mhtml 文件将与昨天的日期一起保存,如 "Dashboard 2015-01-12"。 mhtml 文件中可见的数据必须包含与文件名相关的日期。看到的数据取决于此 excel 文件中的单个单元格,G2。
我希望 Excel 文件执行此操作:
将单个单元格 (G2) 更改为昨天的日期。然后保存它。然后关闭它。
我希望完成此操作:
当有人正在关闭文件时。
我目前的代码:
Sub sbWriteCellWhenClosing()
工作簿("BOOK1.XLS")。关闭 SaveChanges:=True
范围("G2")=格式(现在 - 2,dd - mm - yy)
结束子
编辑:
这行吗?
Private Sub Workbook_BeforeClose(取消为布尔值)
范围("G2")=格式(现在 - 1,dd - mm - yy)
ActiveWorkbook.Close 保存更改:=真
结束子
您应该使用 Workbook.BeforeClose
事件:
http://msdn.microsoft.com/en-us/library/office/ff194765%28v=office.15%29.aspx
要在 VBA 编辑器中的项目 window 中执行此操作,您必须使用 ThisWorkbook 并将代码放在那里。您的代码仅适用于以这种方式修改的工作簿。
这是使用工作簿代码:
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
是否可以在有人关闭文件时自动让Excel执行操作?
情况: 我有一个 Excel 文件,其他几个人也在使用它。此文件在保存时发布一个 mhtml 文件。此 mhtml 文件将与昨天的日期一起保存,如 "Dashboard 2015-01-12"。 mhtml 文件中可见的数据必须包含与文件名相关的日期。看到的数据取决于此 excel 文件中的单个单元格,G2。
我希望 Excel 文件执行此操作: 将单个单元格 (G2) 更改为昨天的日期。然后保存它。然后关闭它。
我希望完成此操作: 当有人正在关闭文件时。
我目前的代码:
Sub sbWriteCellWhenClosing() 工作簿("BOOK1.XLS")。关闭 SaveChanges:=True 范围("G2")=格式(现在 - 2,dd - mm - yy) 结束子
编辑:
这行吗?
Private Sub Workbook_BeforeClose(取消为布尔值) 范围("G2")=格式(现在 - 1,dd - mm - yy) ActiveWorkbook.Close 保存更改:=真 结束子
您应该使用 Workbook.BeforeClose
事件:
http://msdn.microsoft.com/en-us/library/office/ff194765%28v=office.15%29.aspx
要在 VBA 编辑器中的项目 window 中执行此操作,您必须使用 ThisWorkbook 并将代码放在那里。您的代码仅适用于以这种方式修改的工作簿。
这是使用工作簿代码:
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