Zum Inhalt springen

Datei in Excel zeilenweise einlesen und Trennung des Zeichenstrings ohne Trennzeichen


Empfohlene Beiträge

Geschrieben

Hallo,

wie kann ich mit VBA eine Datei zeilenweise einlesen und nach Datenfeld-Spezifikation trennen, die jedoch keine Trennzeichen enthält? Ich möcht angeben können, dass in die erste Spalte z.B. die ersten 4 Zeichen eingelesen werden, in die Zweite die nächsten 3, dann 5 etc... Am liebsten möchte ich die Zeichenlänge der einzelnen Datenfelder in ein Array schreiben, das dann für den Schleifendurchlauf jeweils die Länge heraussucht, um die Zeichenkette so zu splitten.

Ansonsten habe ich das schöne Skript aus diesem Forum, das ich unter dem Link http://forum.fachinformatiker.de/basic/43047-reinladen-textdatei-excel.html gefunden habe (ich hoffe, ich darf es hier wiedergeben).

Public Sub readInputFile()

Dim ff As Long

Dim sFile As String

Dim sLine As String

Dim arr() As String

Dim row As Long

Dim col As Long

Dim activCell As Range

ff = FreeFile

sFile = Application.GetOpenFilename("beliebige Datei,*.*")

'datei oeffnen

Open sFile For Input As #ff

'erste zelle markieren

Set activCell = Worksheets("Tabelle1").Range("A1")

Call activCell.Activate

While (Not EOF(ff))

Line Input #ff, sLine 'zeile einlesen

arr = Split(sLine, vbtab) 'an tabs aufspalten

For col = LBound(arr) To UBound(arr)

'relativ zur aktiven zelle den wert setzen

activCell.Offset(row, col).Value = arr(col)

Next 'i

row = row + 1

Wend

'schliessen

Close ff

End Sub

Das Einlesen klappt auch, allerdings muss auf diesem Weg ein Trennzeichen definiert werden (hier 'vbtab'). Wie geht das auch ohne, beim fortlaufenden String?

Danke und Gruß

orange3000

Geschrieben

wenn du ja weißt, wie viele zeichen und ab welcher stelle du einlesen möchtest... warum verwendest du keine substrings?

Mid(String as String, Start as Long, [Lenght])
Geschrieben

Okay, diese Funktion kannte ich bisher nicht, so eine habe ich gesucht. Damit könnte es gehen... Jetzt muss ich das nur noch in eine Schleife einbinden, die mir die jeweiligen Stellen (von, bis) aus einem Array herausliest. Sollte ich eigentlich hinbekommen.

Vielen Dank schon mal, hat mir weitergeholfen!

Gruß

orange3000

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...