Logga filer med VBA i Microsoft Excel

Innehållsförteckning

I datorer är en loggfil en fil som antingen registrerar händelser som inträffar i ett operativsystem eller andra programvarukörningar eller meddelanden mellan olika användare av ett kommunikationsprogram. Loggning är handlingen att föra en logg. I det enklaste fallet skrivs meddelanden till en enda loggfil.

Tänk på ett scenario, programmet loggar användardetaljerna i loggfilen som kommer åt programmet.

Loggfiler är användbara i olika situationer, särskilt för utvecklare. Loggfiler är rena textfiler som kan lagra information tillfällig eller mer permanent. Du behöver inte mycket kod för att skapa en loggfil. I den här artikeln kommer vi att fokusera på att skapa automatiska loggfiler i en specifik mapp.

Fråga: Hur kan jag skapa en anteckningsfil som innehåller aktuellt datum, tid och användarnamn när filen öppnas?

Följande är ögonblicksbilden av Excel -arbetsbok som innehåller finansiell information:

I det här exemplet kommer resultatet att vara i form av textfil. Anteckningsblocket innehåller datum, tid och andra detaljer; ungefär så här:

För att skapa loggfiler måste vi följa stegen nedan för att starta VB -editor:

  • Klicka på fliken Utvecklare
  • Välj Visual Basic i kodgruppen

  • Klicka på Infoga och sedan Modul

  • Detta skapar en ny modul
  • Ange följande kod i modulen
 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' skapar filen om den inte finns Skriv ut #FileNum, LogMessage "skriv information i slutet av textfilen Stäng #FileNum" stäng filen Slut 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 läser Do While Not EOF (FileNum) Line Input #FileNum, tLine "läs en rad från textfilen Loop" tills den sista raden läses Stäng #FileNum "stäng filen MsgBox tLine, vbInformation," Sista logginformationen: "Slut Sub 
 Sub DeleteLogFile (FullFileName As String) On Error Resume Next 'ignorera eventuella fel Döda FullFileName' ta bort filen om den finns och det är möjligt Vid fel GoTo 0 'break on errors Avsluta Sub 

Kopiera följande kod i ThisWorkbook -modulen

 Private Sub Workbook_Open () LogInformation ThisWorkbook.Name & "öppnade av" & _ Application.UserName & "" & Format (Nu, "åååå-mm-dd hh: mm") Avsluta sub 

  • Nu är VBA -koden klar; nästa gång vi öppnar excel -arbetsboken sparas datum och tid i anteckningsblock; se bilden nedan:

Makrot kommer inte att skriva över data.

Slutsats: Makrot körs varje gång arbetsboken öppnas vid angiven sökväg och mapp.

Om du gillade våra bloggar, dela den med dina vänner på Facebook. Och du kan också följa oss på Twitter och Facebook.

Vi vill gärna höra från dig, låt oss veta hur vi kan förbättra, komplettera eller förnya vårt arbete och göra det bättre för dig. Skriv till oss på e -postwebbplatsen

Du kommer att bidra till utvecklingen av webbplatsen, dela sidan med dina vänner

wave wave wave wave wave