在Excel中使用VBA日志文件
在计算机中,日志文件是一个文件,它记录操作系统或其他软件运行中发生的事件,或通信软件的不同用户之间的消息。记录是保持日志的行为。在最简单的情况下,消息被写入单个日志文件。
考虑一种情况,应用程序正在将访问该应用程序的用户详细信息记录到日志文件中。
| Log文件在不同情况下很有用,尤其是对开发人员而言。日志文件是纯文本文件,可以临时或永久存储信息。您不需要太多代码即可创建日志文件。在本文中,我们将重点放在在特定文件夹中创建自动日志文件。
===
问题:每当打开文件时,如何创建一个包含当前日期,时间和用户名的记事本文件?
以下是包含财务信息的Excel工作簿的快照:
在此示例中,结果将采用文本文件的形式。记事本将包含日期,时间和其他详细信息;有点像这样:
要创建日志文件,我们需要按照以下步骤启动VB编辑器:单击“开发人员”选项卡。在“代码”组中,选择“ Visual Basic”
。 *单击插入,然后单击模块
这将创建新的模块。在模块中输入以下代码
Sub LogInformation(LogMessage As String) Const LogFileName As String = "D:\FOLDERNAME\TEXTFILE.LOG" Dim FileNum As Integer FileNum = FreeFile ' next file number Open LogFileName For Append As #FileNum ' creates the file if it doesn't exist Print #FileNum, LogMessage ' write information at the end of the text file Close #FileNum ' close the file End Sub
Public Sub DisplayLastLogInformation() Const LogFileName As String = "D:\FOLDERNAME\TEXTFILE.LOG" Dim FileNum As Integer, tLine As String FileNum = FreeFile ' next file number Open LogFileName For Input Access Read Shared As #f ' open the file for reading Do While Not EOF(FileNum) Line Input #FileNum, tLine ' read a line from the text file Loop ' until the last line is read Close #FileNum ' close the file MsgBox tLine, vbInformation, "Last log information:" End Sub
Sub DeleteLogFile(FullFileName As String) On Error Resume Next ' ignore possible errors Kill FullFileName ' delete the file if it exists and it is possible On Error GoTo 0 ' break on errors End Sub
将以下代码复制到ThisWorkbook模块
Private Sub Workbook_Open() LogInformation ThisWorkbook.Name & " opened by " & _ Application.UserName & " " & Format(Now, "yyyy-mm-dd hh:mm") End Sub
-
现在VBA代码已全部准备就绪;下次我们打开excel工作簿时,日期和时间将保存在记事本中;请参考下图:
宏不会覆盖数据。
结论:每次工作簿在指定的路径和文件夹打开时,宏都会运行。
如果您喜欢我们的博客,请在Facebook上与您的朋友分享。您也可以在Twitter和Facebook上关注我们。
我们很高兴收到您的来信,请让我们知道我们如何改进,补充或创新我们的工作,并为您做得更好。写信给我们[email protected]