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

export per makro mit fester Breite

Forumthread: export per makro mit fester Breite

export per makro mit fester Breite
16.10.2014 17:22:46
Klaus
Hallo zusammen,
ich habe eine Tabelle, die aus 24 Spalten besteht, die mit fester Breite als Textdatei exportiert werden müssen, an die Daten liegt es nicht,
ea geht mal mit 10, mal mit 1000, aber jeweils sind es die gleichen Testdaten gewesen. Insgesamt können es so bis 6000 Zeilen sein.
Es kommt immer wieder mal ein Laufzeitfehler 13.
das makro seiht wie folgt aus
Sub textExport()
Const maxcol = 24
Dim cellLen(maxcol)
cellLen(1) = 3
cellLen(2) = 4
cellLen(3) = 3
cellLen(4) = 22
cellLen(5) = 10
cellLen(6) = 60
cellLen(7) = 5
cellLen(8) = 1
cellLen(9) = 1
cellLen(10) = 1
cellLen(11) = 1
cellLen(12) = 3
cellLen(13) = 5
cellLen(14) = 5
cellLen(15) = 60
cellLen(16) = 4
cellLen(17) = 3
cellLen(18) = 3
cellLen(19) = 10
cellLen(20) = 6
cellLen(21) = 2
cellLen(22) = 22
cellLen(23) = 64
cellLen(24) = 2
For i = 1 To Worksheets.Count
Open "x:\Anfrage_APM.txt" For Output As #1
For j = 1 To Worksheets(i).Cells.SpecialCells(xlLastCell).Row
For k = 1 To maxcol
sstr = Worksheets(i).Cells(j, k)
Select Case Len(sstr)
Case Is > cellLen(k)
Print #1, Mid(sstr, 1, cellLen(k));
Case Is 

wäre nett wenn hier jemand eine Idee hat, wo es hakt.
Danke Klaus

Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: export per makro mit fester Breite
16.10.2014 17:41:30
Klaus
achso sorry
der Laufzeitfehler kommt immer in der Zeile
Select Case Len(sstr)

AW: export per makro mit fester Breite
16.10.2014 17:47:27
Daniel
HI
ich würde mal auf einen Fehler (#NV, #Wert #DIV/0, #Zahl) in der betroffenen Zelle tippen.
das erzeugt auf jeden Fall einen Fehler 13 in Verbindung mit der Funktion LEN.
aber das kannst du ja selber leicht prüfen, einfach mal schauen, in welcher Programmzeile der Fehler auftritt und und dann siehst du ja, welche Zelle grade bearbeitet wird (j = Zeilennummer, k = Spaltennummer) und kannst schauen, was da drin steht.
Was zu tun ist, hängt davon ab, was in diesem Fall passieren soll.
Der einfachste Weg, den Fehler zu vermeiden wäre folgende Codergänzung:
sstr = Worksheets(i).Cells(j, k).Text
durch das .Text wird auch bei Fehlern kein Fehlerwert in die Variable sstr geschrieben, sondern ein einfacher Textstring (genau der Text, den du in der Tabelle angezeigt bekommst) und das Programm läuft problemlos durch.
In der Textdatei steht dann an dieser Stelle der entsprechende Fehlertext.
Gruß Daniel

Anzeige
AW: export per makro mit fester Breite
16.10.2014 23:26:31
Klaus
Danke Daniel,
jetzt geht es problemlos, schon zigmal getestet, mit locker 5000 Zeilen
DANKE für die wahnsinnig schnelle kompetente Hilfe
Gruß Klaus
;

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