Есть ли способ или, возможно, объект в сочетании с методом applicaton.
, который при использовании будет записывать в журнал (в диапазоне на листе), была ли рабочая книга открыта или закрыта ,excel vba метод рабочая книга открыта или закрыта true или false
Вместо того, чтобы делать две процедуры, один журнал для открытия и журнал для закрытия, я собираюсь объединить оба журнала.
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
P.S. Я считаю, что могу сконденсировать этот код в цикле for?
Поскольку вы хотите записать ** дату/время ** для открытия и закрытия, вам нужны два макроса. –
А я не видел различий в столбцах. Но на самом деле я не вижу в этом большой пользы. Так как открытые/закрытые будут на пятках друг друга, они могут быть записаны последовательно, а не параллельно одному и тому же эффекту. –