【发布时间】:2014-11-19 02:13:23
【问题描述】:
是否有与applicaton. 方法结合使用的方法或对象,当使用该方法时,无论工作簿是打开还是关闭,都会在日志中写入(在工作表的范围内)。
我没有创建两个子程序,一个用于打开的日志,一个用于关闭的日志,我希望将两个日志结合起来。
Option Explicit
Private Sub workbook_open()
Call Unprot
Sheets("log").Activate
Range("A1").Value = "Workbook Opened"
Range("B1").Value = "User"
Range("C1").Value = "LAN ID"
Range("D1").Value = "Computer"
Range("E1").Value = "Domain"
Range("F1").Value = "Count"
Rows("2:2").Insert
Range("F2").Value = Sheets("log").Range("F2").Value + 1
Range("A2").Value = Now
Range("B2") = Application.UserName
Range("C2") = Environ$("username")
Range("D2") = Environ$("computername")
Range("E2") = Environ$("USERDOMAIN")
Cells.EntireColumn.AutoFit
Call Prot
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Call Unprot
Sheets("log").Activate
Range("H1").Value = "Workbook Closed"
Range("I1").Value = "User"
Range("J1").Value = "LAN ID"
Range("K1").Value = "Computer"
Range("L1").Value = "Domain"
Range("M1").Value = "Count"
Rows("2:2").Insert
Range("M2").Value = Sheets("log").Range("M2").Value + 1
Range("H2").Value = Now
Range("I2") = Application.UserName
Range("J2") = Environ$("username")
Range("K2") = Environ$("computername")
Range("L2") = Environ$("USERDOMAIN")
Cells.EntireColumn.AutoFit
Call Prot
End Sub
附:我相信我可以将此代码压缩为 for 循环?
【问题讨论】:
-
由于要记录打开和关闭的日期/时间,因此需要两个宏。
-
啊,我没有看到列差异。但实际上我认为这并没有什么好处。由于打开/关闭将紧随其后,因此它们可以按顺序而不是并行写入以达到相同的效果。