Ghi nhật ký tệp bằng VBA trong Microsoft Excel
Trong máy tính, tệp nhật ký là tệp ghi lại các sự kiện xảy ra trong hệ điều hành hoặc chạy phần mềm khác hoặc thông báo giữa những người dùng khác nhau của một phần mềm giao tiếp. Ghi nhật ký là hành động lưu giữ nhật ký. Trong trường hợp đơn giản nhất, các thông báo được ghi vào một tệp nhật ký duy nhất.
Xem xét một kịch bản, ứng dụng đang ghi chi tiết người dùng vào tệp nhật ký đang truy cập ứng dụng.
Tệp đăng nhập rất hữu ích trong các tình huống khác nhau, đặc biệt là đối với các nhà phát triển. Tệp nhật ký là tệp văn bản thuần túy có thể lưu trữ thông tin tạm thời hoặc lâu dài hơn. Bạn không cần nhiều mã để tạo tệp nhật ký. Trong bài này, chúng tôi sẽ tập trung vào việc tạo các tệp nhật ký tự động trong một thư mục cụ thể .
===
Câu hỏi: Làm cách nào để tạo tệp notepad chứa ngày, giờ và Tên người dùng hiện tại bất cứ khi nào tệp được mở?
Sau đây là ảnh chụp nhanh sổ làm việc Excel chứa thông tin tài chính:
Trong ví dụ này, kết quả sẽ ở dạng tệp văn bản. Sổ tay sẽ chứa ngày, giờ & các chi tiết khác; hơi giống thế này:
Để tạo tệp nhật ký, chúng ta cần làm theo các bước sau để khởi chạy trình soạn thảo VB: Nhấp vào tab Nhà phát triển Từ nhóm Mã chọn Visual Basic
-
Nhấp vào Chèn rồi đến Mô-đun
Thao tác này sẽ tạo mô-đun mới Nhập mã sau vào Mô-đun
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
Sao chép đoạn mã sau trong mô-đun ThisWorkbook
Private Sub Workbook_Open() LogInformation ThisWorkbook.Name & " opened by " & _ Application.UserName & " " & Format(Now, "yyyy-mm-dd hh:mm") End Sub
-
Bây giờ mã VBA đã hoàn tất; lần tới khi chúng ta mở sổ làm việc excel, ngày & giờ sẽ được lưu trong notepad; tham khảo hình ảnh bên dưới:
Macro sẽ không ghi đè dữ liệu.
Kết luận: Macro sẽ chạy mỗi khi sổ làm việc được mở tại đường dẫn & thư mục được chỉ định.
Nếu bạn thích blog của chúng tôi, hãy chia sẻ nó với bạn bè của bạn trên Facebook. Và bạn cũng có thể theo dõi chúng tôi trên Twitter và Facebook.
Chúng tôi rất muốn nghe ý kiến từ bạn, hãy cho chúng tôi biết cách chúng tôi có thể cải thiện, bổ sung hoặc đổi mới công việc của mình và làm cho nó tốt hơn cho bạn. Viết thư cho chúng tôi tại [email protected]