Bei der Arbeit mit VBA in Excel ist es häufig erforderlich, auf Informationen über eine Datei zuzugreifen, einschließlich des Zeitpunkts, an dem sie zuletzt geändert wurde. Wenn Sie wissen, wann eine Datei geändert wird, kann dies in verschiedenen Szenarien nützlich sein, z. B. beim Nachverfolgen von Datenaktualisierungen oder beim automatischen Aktualisieren von Pivottables.
Sie müssen das FileSystemObject-Objekt aus der Microsoft Scripting Runtime-Bibliothek verwenden, um das Datum der letzten Dateiänderung in VBA abzurufen. Mit diesem Objekt können wir auf verschiedene Eigenschaften einer Datei zugreifen, einschließlich des Datums und der Uhrzeit, zu der sie geändert wurde.
Um mit FileSystemObject zu beginnen, müssen Sie das FileSystemObject deklarieren und eine Instanz des Objekts erstellen:
Dim FSO As Object
Als nächstes können wir die getFile-Methode verwenden, um ein Dateiobjekt abzurufen, dessen Änderungen uns interessieren:
Dim File As Object
Mit der Eigenschaft DateLastModified können wir dann die Zeit der letzten Änderung der Datei abrufen:
Dim LastModified As Date
Die empfangene Änderungszeit für die Datei kann in Ihren Datenverarbeitungsszenarien verwendet oder für den Benutzer angezeigt werden. Sie können auch überprüfen, wann eine Datei in bestimmten Abständen geändert wird, und die Daten in einer Excel-Arbeitsmappe automatisch aktualisieren.
Algorithmus zum Abrufen der Änderungszeit einer Datei in Excel VBA
Sie können den folgenden Algorithmus verwenden, um die Änderungszeit einer Datei in VBA Excel abzurufen:
- Bestimmen Sie den Pfad zu der Datei, über die Sie Informationen erhalten möchten.
- Erstellen Sie ein FileScriptingObject-Objekt mit der Funktion CreateObject("Scripting.FileSystemObject").
- Überprüfen Sie mithilfe der FileExists-Eigenschaft des FileScriptingObject-Objekts, ob eine Datei vorhanden ist.
- Wenn die Datei vorhanden ist, rufen Sie das File-Objekt mithilfe der getFile-Eigenschaft des FileScriptingObject ab.
- Ruft den Zeitpunkt ab, zu dem die Datei zuletzt geändert wurde, mithilfe der DateLastModified-Eigenschaft des File-Objekts ab.
- Zeigt den Zeitpunkt der letzten Änderung der Datei an oder speichert sie in einer Excel-Variablen oder -Zelle.
Dieser Algorithmus ermöglicht es Ihnen, den Zeitpunkt der letzten Dateiänderung in VBA Excel abzurufen. Diese Informationen können beispielsweise bei der Überwachung von Dateiänderungen oder bei der Überwachung von Daten nützlich sein.
Beispielcode für VBA:
Sub GetFileLastModifiedTime()Dim filePath As StringDim fileSystem As ObjectDim file As ObjectDim lastModifiedTime As DatefilePath = "C:\path\to\file.txt" ' Замените на путь к нужному файлуSet fileSystem = CreateObject("Scripting.FileSystemObject")If fileSystem.FileExists(filePath) ThenSet file = fileSystem.GetFile(filePath)lastModifiedTime = file.DateLastModifiedMsgBox "Время последнего изменения файла: " & lastModifiedTimeElseMsgBox "Файл не найден"End IfEnd Sub
Geben Sie in diesem Codebeispiel den Pfad zu der Datei an, die Sie zuletzt geändert haben möchten. Sie können diesen Teil des Codes jedoch für Ihre eigenen Bedürfnisse ändern.
Daher können Sie mit dem beschriebenen Algorithmus den Zeitpunkt der letzten Dateiänderung in Excel in VBA abrufen und diese Informationen für verschiedene Aufgaben verwenden.
Methode 1: Verwenden der FileDateTime-Funktion
Um die FileDateTime-Funktion zu verwenden, müssen Sie den Dateipfad als Argument an sie übergeben. Der Pfad kann als absoluter Pfad (mit dem vollständigen Dateipfad) oder relativer Pfad (relativ zum aktuellen Speicherort der Makrodatei) angegeben werden.
Im folgenden Beispielcode wird die Verwendung der FileDateTime-Funktion veranschaulicht:
Sub GetFileLastModifiedTime()Dim filePath As StringDim lastModifiedTime As DatefilePath = "C:\Path\To\Your\File.xlsx"lastModifiedTime = FileDateTime(filePath)MsgBox "Время последнего изменения файла: " & lastModifiedTimeEnd Sub
In diesem Codebeispiel enthält die Variable filePath den Pfad zu der Datei, deren Änderungszeit wir abrufen möchten. Die FileDateTime-Funktion weist der Variablen lastModifiedTime einen Wert zu, und die letzte Änderung der Datei wird mit MsgBox in einer Nachricht angezeigt.
Diese Methode macht es einfach, die Änderungszeit einer Datei zu erhalten, erfordert jedoch eine genaue Angabe des Dateipfads. Wenn eine Datei verschoben wird oder sich ihr Name ändert, funktioniert der Code nicht ordnungsgemäß. In solchen Fällen wird empfohlen, andere Methoden zu verwenden, um zu bestimmen, wann die Datei geändert wird.
Methode 2: Verwenden eines FileSystemObject-Objekts
Die zweite Methode zum Abrufen der Änderungszeit einer Datei in Excel VBA besteht darin, ein FileSystemObject aus der Microsoft Scripting Runtime-Bibliothek zu verwenden. Dieses Objekt ermöglicht verschiedene Operationen mit Dateien und Ordnern im Betriebssystem.
Zunächst müssen Sie einen Verweis auf die Microsoft Scripting Runtime-Bibliothek hinzufügen. Öffnen Sie dazu das Menü Extras - Links, und suchen Sie in der Liste nach Microsoft Scripting Runtime. Markieren Sie diesen Link und klicken Sie auf "OK".
Nachdem Sie einen Verweis auf die Bibliothek hinzugefügt haben, können Sie das FileSystemObject verwenden, um die Änderungszeit für die Datei abzurufen. Erstellen Sie dazu mithilfe des CreateObject-Schlüsselworts eine Instanz des FileSystemObject-Objekts:
Dim fs As ObjectSet fs = CreateObject("Scripting.FileSystemObject")
Anschließend können Sie die getFile-Methode des FileSystemObject-Objekts verwenden, um das Dateiobjekt abzurufen. Übergeben Sie als Methodenargument den Pfad zur gewünschten Datei. Der folgende Code ruft beispielsweise ein Dateiobjekt mithilfe der getFile-Methode ab:
Dim f As ObjectSet f = fs.GetFile("C:\Documents\TestFile.txt")
Nachdem Sie ein Dateiobjekt abgerufen haben, können Sie mit der DateLastModified-Eigenschaft den Zeitpunkt der letzten Änderung abrufen. Zum Beispiel:
Dim lastModified As DatelastModified = f.DateLastModified
Die lastModified-Variable enthält den Zeitpunkt, zu dem die Datei zuletzt geändert wurde. Sie können diesen Wert in Ihrem Code verwenden, um die erforderlichen Aktionen auszuführen.
Es ist wichtig zu beachten, dass Sie bei der Verwendung des FileSystemObject-Objekts vorsichtig sein müssen und mögliche Fehler und Ausnahmen berücksichtigen müssen, die beim Arbeiten mit Dateien und Ordnern auftreten können.