Fehlersuche

19/02/2008 - 10:14 von contact | Report spam
Hallo,

ich habe folgendes Problem bei dem ihr mir vielleicht helfen könnt.
Ich habe 2 Makros die nicht weiter machen als eine Textdatei in die
Variable data einzulesen und ein zweites Makros, welches den String
dann trennt und auf einzelne Zeilen aufteilt. Ein Beispieldatensatz
der in eine Zeile aufgeteilt wird, sieht so aus:

UNH+XXXXXXXXX+INVOIC:D:06A:UN:2.0a'BGM+386::5+XX XXXXXXXXX+9'DTM
+137:20080122:102'DTM+155:20080115:102'DTM+156:20080215:102'NAD+MS
+XXXXXXXXXXX::293'NAD+MR+XXXXXXXXXX::293'NAD+DP+++XXXXXXX, XXXXXX
+XXXXX.:XXX+XXXX++XXXXX+DE'LOC+172+XXXXXXX::89'RFF+IT:XXXXXXX'CUX
+2:EUR:4'PYT+3'DTM+265:20080215:102'LIN+1++XXXXXXXX:EN::293'DTM
+155:20080115:102'DTM+156:20080215:102'MOA+203:18.49'RFF+MG:XXXXXXX'TAX
+7+VAT+++:::19+S'UNS+S'MOA+125:18.49'MOA+389:0.00'MOA+176:3.51'MOA
+77:22.00'MOA+9:22.00'TAX+7+VAT+++:::19+S'MOA+125:18.49'MOA
+161:3.51'UNT+29+XXXXX'


Function Lese_Datei()
Open filetoopen For Input As #1
Do While Not EOF(1)
Line Input #1, data
Loop
Close
End Function


Function Daten_Splitt()
Dim arrTxt
Dim lngI As Long

arrTxt = Split(data, "'") ''Segmente trennen
i = 1
a = 1
For lngI = LBound(arrTxt) To UBound(arrTxt)
check = Left(arrTxt(lngI), 3)

If check = "UNH" Then
i = i + 1
a = 1
SP.Spreadsheet1.Cells(i, a).Value = arrTxt(lngI)
a = a + 1
Else
SP.Spreadsheet1.Cells(i, a).Value = arrTxt(lngI)
a = a + 1
End If

Next lngI
End Function

In der Funktion Daten_Splitt wird die Daten in data auseinander
genommen. Immer wenn ein UNH vorhanden ist gehe in die nàchste Zeile
im Spreadsheet. Hier muss ich ein Spreadsheet verwenden, da ich
teilweise über 256 Spalten komme und es mit einem normalen
Tabellenblatt nicht funktioniert.

Jetzt habe ich zum Beispiel ein kleiner Datei mit ca. 10 Mio. Zeichen
die nun auf die Zeilen aufgeteilt werden sollen. Zwischen 7000 und
8000 Zeilen erscheint dann irgendwann an dieser Stelle:

SP.Spreadsheet1.Cells(i, a).Value = arrTxt(lngI)

ein 438 Laufzeifehler.

Ist mein Rechner zu schwach? Oder woran könnte das noch liegen. Bei
kleineren Dateien gibt es kein Problem. Evtl liegt das auch an dem
Spreadsheet. Zellschutz ist zumindest ausgeschaltet. Oder vielleicht
auch Speicher der nicht freigegeben wird?? Oder gibt es eine
Größenbeschrànkung für Arrays, wie hier arrTXT ??

Vielleicht habt ihr ja eine Idee. Wàr klasse ;-)

Vielen Dank

Jan
 

Lesen sie die antworten

#1 kortmann81
19/02/2008 - 10:15 | Warnen spam
achso .. Version ist Excel 2000 mit Spreadsheet 9.0

Ähnliche fragen