Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Textdatei in Array laden

Textdatei in Array laden
05.06.2005 22:21:52
dennis
Hallo XL's !!
Ich möchte eine Textdatei (test.usr) in Excel einlesen. Die Textdatei in eine Tabelle einlesen ist kein Problem. Aber nun möchte ich dafür kein Extra-Tabellenblatt erstellen, sondern die Datei in ein Array einlesen. Die Textdatei besteht aus Zahlen und Buchstaben, die mit einem Semikolon getrennt sind. Die Textdatei kann unterschiedlich lang sein, aber dennoch weiss ich genau, was an welcher Stelle steht. Z.B. an der 6. Stelle in der Textdatei steht immer die Artikelnummer. Nachdem die Datei in das Array gelesen wurde, sollen diese Daten in verschiedene blätter übertragen werden. Das Makro dafür ist schon fertig, da ich vorher die Textdatei in eine Tabelle eingelesen habe und z.B. Import!A6 in Berechnungen!C2 übertragen habe.
Wenn man die Daten anders als mit einem Semikolon trennen muss, um sie in ein Array einzulesen, wäre es auch kein Problem!
Das vierte Datum aus dem Array in ein anderes Blatt transferieren, müsste doch so gehen, oder:
Sheets("Berechnungen").cells(1,6)=Textarray(4)
Danke für eure Hilfe !!!!!
Dennis
Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Textdatei in Array laden
05.06.2005 22:46:43
MichaV
Hi,
was genau ist eigentlich Deine Frage?
Schau Dir mal die Split-Funktion an.
Gruß- Micha
AW: Textdatei in Array laden
05.06.2005 23:21:40
MichaV
Hi,
so mit Split- Funktion:


      
Option Explicit
Private Sub CommandButton1_Click()
Dim strAlles As String
Dim strDaten() As String
Open "d:\micha\excel\daten.txt" For Binary As #1
strAlles = Space(LOF(1))
Get #1, , strAlles
Close #1
If Not Right(strAlles, 2) = vbCrLf Then strAlles = strAlles & vbCrLf
strDaten = Split(strAlles, vbCrLf)
'3. Element ausgeben
MsgBox strDaten(3)
'leztes Element ausgeben
MsgBox strDaten(UBound(strDaten))
End Sub 
Gruß- Micha
Anzeige
AW: Textdatei in Array laden
06.06.2005 00:42:13
MichaV
Hi,
nur zur Richtigstellung,
If Not Right(strAlles, 2) = vbCrLf Then strAlles = strAlles & vbCrLf
ist Quatsch und kann wieder raus.
Gruß- Micha
PS: Toll, immer auf die eigenen Beiträge zu antworten :o(
super!!! danke rainer!!!
05.06.2005 23:15:01
dennis
;
Anzeige

Infobox / Tutorial

Textdatei in Array laden und in Excel verwenden


Schritt-für-Schritt-Anleitung

Um eine Textdatei in ein Array in Excel zu laden, kannst du die folgende Vorgehensweise nutzen. Dieses Beispiel geht davon aus, dass du mit VBA (Visual Basic for Applications) arbeitest.

  1. VBA-Editor öffnen: Drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Modul einfügen: Klicke mit der rechten Maustaste auf "VBAProject (DeineArbeitsmappe)" > Einfügen > Modul.

  3. Code einfügen: Kopiere den folgenden Code in das Modul:

    Option Explicit
    
    Private Sub CommandButton1_Click()
       Dim strAlles As String
       Dim strDaten() As String
       Dim i As Integer
    
       Open "d:\micha\excel\daten.txt" For Binary As #1
       strAlles = Space(LOF(1))
       Get #1, , strAlles
       Close #1
    
       strDaten = Split(strAlles, vbCrLf)
    
       ' Beispiel: Ausgabe des 4. Elements
       MsgBox strDaten(3)
    End Sub
  4. Dateipfad anpassen: Stelle sicher, dass der Dateipfad zu deiner Textdatei korrekt ist.

  5. Makro ausführen: Schließe den VBA-Editor und führe das Makro aus, um die Daten in das Array zu laden.


Häufige Fehler und Lösungen

  • Fehler: Datei nicht gefunden
    Lösung: Überprüfe den Dateipfad. Stelle sicher, dass die Datei existiert und der Pfad korrekt ist.

  • Fehler: Index außerhalb des Bereichs
    Lösung: Stelle sicher, dass die Textdatei mindestens so viele Zeilen hat, wie du im Code anforderst. Beispiel: Wenn du MsgBox strDaten(3) verwendest, muss die Datei mindestens 4 Zeilen haben.

  • Fehler: Unerwarteter Fehler beim Öffnen der Datei
    Lösung: Vergewissere dich, dass keine anderen Anwendungen die Datei verwenden und dass du ausreichende Berechtigungen hast.


Alternative Methoden

Wenn du keine VBA-Programmierung verwenden möchtest, kannst du auch die Funktion „Daten importieren“ in Excel nutzen. Hierbei wird die Textdatei in eine Tabelle geladen, und anschließend kannst du die Daten in ein Array umwandeln, indem du die Range-Eigenschaft verwendest.

Ein einfaches Beispiel wäre:

Dim myArray As Variant
myArray = Range("A1:A10").Value

Hierbei wird der Zellbereich A1:A10 in das Array myArray geladen.


Praktische Beispiele

  1. Artikelnummer extrahieren: Angenommen, die Artikelnummer steht immer an der 6. Stelle in der Textdatei:

    Sheets("Berechnungen").Cells(1, 6) = strDaten(5)
  2. Daten auf mehreren Blättern verteilen: Wenn du die Daten auf verschiedene Blätter übertragen möchtest, kannst du eine Schleife verwenden:

    For i = LBound(strDaten) To UBound(strDaten)
       Sheets("Zielblatt" & i + 1).Cells(1, 1) = strDaten(i)
    Next i

Tipps für Profis

  • Verwendung der Split-Funktion: Wenn deine Daten durch ein anderes Zeichen als Zeilenumbrüche oder Semikolons getrennt sind, kannst du die Split-Funktion anpassen. Zum Beispiel, um Daten, die durch Kommas getrennt sind, zu laden:

    strDaten = Split(strAlles, ",")
  • Fehlerbehandlung einfügen: Baue eine Fehlerbehandlung in dein Makro ein, um sicherzustellen, dass dein Code auch bei unerwarteten Problemen stabil bleibt.

On Error GoTo Fehlerbehandlung
' Dein Code hier
Exit Sub

Fehlerbehandlung:
MsgBox "Ein Fehler ist aufgetreten: " & Err.Description

FAQ: Häufige Fragen

1. Wie kann ich die Trennzeichen ändern?
Du kannst das Trennzeichen in der Split-Funktion anpassen. Zum Beispiel, um Daten, die durch Kommas getrennt sind, zu laden, nutze Split(strAlles, ",").

2. Gibt es eine Begrenzung für die Anzahl der Zeilen in einer Textdatei?
Excel hat eine Begrenzung von 1.048.576 Zeilen pro Blatt, aber die Anzahl der Zeilen in deiner Textdatei ist theoretisch unbegrenzt, solange die Datei im Arbeitsspeicher verarbeitet werden kann.

3. Wie kann ich sicherstellen, dass meine Datei immer richtig gelesen wird?
Achte darauf, dass die Textdatei im richtigen Format vorliegt und keine unerwarteten Zeichen enthält. Es ist auch hilfreich, die Datei vor dem Import zu überprüfen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige