首页 文章

关闭工作簿时的VBA Excel操作

提问于
浏览
3

当有人关闭文件时,是否可以自动让Excel执行操作?

我对VBA是一个很新的堆栈溢出,所以请怜悯..

情况:我有一个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

2 回答

  • 2

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

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

  • 7

    This is using the Workbook code:

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

    In a separate Module:

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

相关问题