Abrufen von Dateinamen in ein Arbeitsblatt (Microsoft Excel)
Carol hat ein Verzeichnis mit ungefähr 1.000 Dateien mit Namen wie YR1905-LIC12345-Smith, Harry-Brown, Mary. Sie möchte alle diese Dateinamen (nicht die Dateien selbst) in ein Arbeitsblatt einfügen und die Namen am Bindestrich trennen. Somit würde der Beispieldateiname tatsächlich vier Zellen in einer einzelnen Zeile belegen. Carol geht davon aus, dass dies ein Makro erfordert, aber sie ist sich nicht sicher, wie sie auf die Dateinamen in diesem Makro zugreifen soll.
Sie können dazu natürlich ein Makro verwenden, aber Sie müssen kein Makro verwenden. Sie können stattdessen einen alten Trick aus der DOS-Ära verwenden, um das zu bekommen, was Sie brauchen.
Um auf die Eingabeaufforderung zuzugreifen, wenn Sie eine spätere Version von Excel verwenden, geben Sie einfach „Eingabeaufforderung“ (ohne Anführungszeichen) in das Suchfeld neben dem Windows-Symbol in der Taskleiste ein. Wenn Sie eine ältere Version von Excel verwenden, können Sie über Windows auf die Eingabeaufforderung zugreifen: Start | Alle Programme | Zubehör | Eingabeaufforderung. Navigieren Sie an der Eingabeaufforderung, bis Sie sich in dem Verzeichnis befinden, in dem sich die Dateien befinden. Nehmen wir für dieses Beispiel an, dass Sie versuchen, eine Liste der Dateien in diesem Verzeichnis abzurufen:
c:\Users\e07482\My Documents\rnp
Um zu diesem Verzeichnis zu navigieren, geben Sie diesen Befehl an der Eingabeaufforderung ein:
chdir "\Users\e07482\My Documents\rnp"
Aufgrund des Leerzeichens im Pfadnamen müssen Sie die Anführungszeichen im Verzeichnis verwenden. Geben Sie dann den folgenden Befehl ein, um auf dem Bildschirm die Dateiliste anzuzeigen:
dir /b /a-d
Der Teil „/ a-d“ bedeutet „Verzeichnisse nicht auflisten“. Wenn Sie mit dem, was Sie auf dem Bildschirm sehen, zufrieden sind, können Sie es wie folgt an die Datei senden:
dir /b /a-d > filelist.txt
Dadurch wird eine Textdatei (filelist.txt) erstellt, die eine Liste aller Dateien im aktuellen Verzeichnis enthält. In Excel können Sie nun die folgenden Schritte ausführen:
-
Zeigen Sie das Dialogfeld Öffnen an. (Klicken Sie in Excel 2007 auf die Schaltfläche Office und dann auf Öffnen. Klicken Sie in Excel 2010 auf die Registerkarte Datei des Menübands und dann auf Öffnen. Klicken Sie in Excel 2013 auf die Registerkarte Datei des Menübands, klicken Sie auf Öffnen, dann auf Computer und schließlich auf Computer Durchsuchen. Klicken Sie in späteren Versionen von Excel auf die Registerkarte Datei des Menübands und dann auf Durchsuchen.)
-
Geben Sie in der Dropdown-Liste Dateityp am unteren Rand des Dialogfelds an, dass Sie Textdateien (.prn; .txt; * .csv) öffnen möchten.
-
Navigieren Sie zu der Datei filelist.txt, die Sie an der Eingabeaufforderung erstellt haben, und wählen Sie sie aus.
-
Klicken Sie auf Öffnen. Excel startet den Textimport-Assistenten und zeigt das Dialogfeld Schritt 1 von 3 an. (Siehe Abbildung 1.)
-
Stellen Sie sicher, dass die Option Begrenzt ausgewählt ist, und klicken Sie dann auf Weiter. Excel zeigt das Dialogfeld Schritt 2 von 3 an.
-
Stellen Sie sicher, dass Sie einen Bindestrich als Trennzeichen angeben. (Sie müssen auf Andere klicken und dann einen Bindestrich als Trennzeichen eingeben.)
-
Klicken Sie auf Fertig stellen. Ihre Datei wird an den Strichen importiert und beschädigt, genau wie Sie es wollten.
Die oben genannten Schritte sind recht einfach durchzuführen, insbesondere wenn Sie die Dateiliste nur gelegentlich in Excel abrufen müssen. Wenn Sie dies routinemäßiger tun müssen, sollten Sie wahrscheinlich nach einer Möglichkeit suchen, dies mithilfe eines Makros zu tun. Das folgende Makro funktioniert sehr schnell:
Sub GetFileNames() Dim sPath As String Dim sFile As String Dim iRow As Integer Dim iCol As Integer Dim splitFile As Variant 'specify directory to use - must end in "\" sPath = "C:\" iRow = 0 sFile = Dir(sPath) Do While sFile <> "" iRow = iRow + 1 splitFile = Split(sFile, "-") For iCol = 0 To UBound(splitFile) Sheet1.Cells(iRow, iCol + 1) = splitFile(iCol) Next iCol sFile = Dir ' Get next filename Loop End Sub
Stellen Sie beim Ausführen des Makros sicher, dass das aktuelle Arbeitsblatt nichts enthält. (Alles, was dort vorhanden ist, wird überschrieben.) Außerdem sollten Sie den Verzeichnispfad ändern, der der Variablen sPath am Anfang des Makros zugewiesen ist.
_Hinweis: _
Wenn Sie wissen möchten, wie die auf dieser Seite (oder auf einer anderen Seite der ExcelTips-Websites) beschriebenen Makros verwendet werden, habe ich eine spezielle Seite vorbereitet, die hilfreiche Informationen enthält.
ExcelTips ist Ihre Quelle für kostengünstige Microsoft Excel-Schulungen.
Dieser Tipp (11144) gilt für Microsoft Excel 2007, 2010, 2013, 2016, 2019 und Excel in Office 365. Eine Version dieses Tippes für die ältere Menüoberfläche von Excel finden Sie hier: