跟踪可能无法保存工作簿的工作簿的登录/注销时间
Posted
技术标签:
【中文标题】跟踪可能无法保存工作簿的工作簿的登录/注销时间【英文标题】:Tracking login/logout time of workbook where workbook may not be saved 【发布时间】:2016-07-13 19:43:47 【问题描述】:我有一个工作簿,用于跟踪登录和注销时的用户和时间。
通过按钮或关闭工作簿触发注销。
有人可能希望不将他们已完成的工作保存在工作簿中,但我仍想在我的审核日志中查看他们何时登录和退出。
有没有办法只将数据保存在一张工作表中而不是整个工作簿中?
【问题讨论】:
要么保存工作簿,要么不保存。您只能将一张工作表另存为新工作簿,但我认为这不是您要查找的内容... 最好让您的代码将信息记录到其他地方,例如与工作簿位于同一文件夹中的单独文本文件。 同意@TimWilliams。不过,安全将是我主要关心的问题。有人可以轻松追踪并更改日志。对你来说可能无关紧要,但它可能。 【参考方案1】:如果你想要的只是一个审计日志,你可以很容易地用一个文本文件来做到这一点。但是,您当前正在记录您的“登录”,可以修改为将其记录到该工作表和另一个 excel 工作簿或上述文本文件中。您显然可以编辑路径以保存到您想要的任何目录。请务必先创建一个 Log.txt(或其他)文件。同样,如果您愿意捕获它们,您可以添加其他变量,我假设您已经在现有代码中拥有这些变量。此代码中的 open 语句不会反映在屏幕上。它会在事件查看器中弹出一个任务,然后将其关闭。
Sub LogIn()
Dim Path As String
Dim TxtLog As String
Dim i As Integer
i = FreeFile
Path = ThisWorkbook.Path & "\Log.txt"
Open Path For Input As i
TxtLog = Input(LOF(i), i) & vbCr & Now()'read entire log file into string and add new info
Close i 'close log.txt for reading to VBA
i = FreeFile
Open Path For Output As i 'open log.txt to write to it from VBA
Print #i, TxtLog
Close i
End Sub
【讨论】:
以上是关于跟踪可能无法保存工作簿的工作簿的登录/注销时间的主要内容,如果未能解决你的问题,请参考以下文章