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.

Navigieren Sie an der Eingabeaufforderung (über Windows zugänglich: Start | Alle Programme | Zubehör | Eingabeaufforderung), bis Sie sich in dem Verzeichnis befinden, das die Dateien enthält. Geben Sie dann Folgendes ein:

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:

  1. Klicken Sie in Excel in der Symbolleiste auf das Werkzeug Öffnen. Excel zeigt das Dialogfeld Öffnen an.

  2. Geben Sie in der Dropdown-Liste Dateityp am unteren Rand des Dialogfelds an, dass Sie Textdateien (.prn; .txt; * .csv) öffnen möchten.

  3. Navigieren Sie zu der Datei filelist.txt, die Sie an der Eingabeaufforderung erstellt haben, und wählen Sie sie aus.

  4. Klicken Sie auf Öffnen. Excel startet den Textimport-Assistenten und zeigt das Dialogfeld Schritt 1 von 3 an. (Siehe Abbildung 1.)

  5. 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.

  6. Stellen Sie sicher, dass Sie einen Bindestrich als Trennzeichen angeben. (Sie müssen auf Andere klicken und dann einen Bindestrich als Trennzeichen eingeben.)

  7. 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.

Wenn beim Ausführen des Makros eine Fehlermeldung angezeigt wird, stehen die Chancen gut, dass Sie Excel 97 verwenden. Die Funktion „Teilen“ (zum Aufteilen des Dateinamens in den Bindestrichen) wurde VBA erst in Excel 2000 hinzugefügt. Wenn Sie Excel 97 verwenden Dann können Sie die folgende Routine verwenden, um zu emulieren, was die Split-Funktion tut:

Function Split(Raw As String, Delim As String) As Variant     Dim vAry() As String     Dim sTemp As String     Dim J As Integer     Dim Indx As Integer

Indx = 0     sTemp = Raw     J = InStr(sTemp, Delim)

While J > 0         Indx = Indx + 1         ReDim Preserve vAry(1 To Indx)

vAry(Indx) = Trim(Left(sTemp, J))

sTemp = Trim(Mid(sTemp, J, Len(sTemp)))

J = InStr(sTemp, Delim)

Wend     Indx = Indx + 1     ReDim Preserve vAry(1 To Indx)

vAry(Indx) = Trim(sTemp)

Split = vAry()

End Function

_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 (11143) gilt für Microsoft Excel 97, 2000, 2002 und 2003.

Eine Version dieses Tippes für die Multifunktionsleistenoberfläche von Excel (Excel 2007 und höher) finden Sie hier: