Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Run out of memory

Forumthread: Run out of memory

Run out of memory
27.08.2004 11:31:57
Ryu_Hoshi
Hallo Ich habe einen Macro der bei kleinen Dateien (36kb, 178 Zeilen) gut läuft, jetzt habe ich es mal mit grosser Datei (694 kb, 3570 Zeilen) versucht und bekomme den Fehler 7, run out of memory.
Weiss zufällig einer wie man das Problem lösen könnte? So sieht der code aus bis zu dem Punkt wo es abstürzt
Sub Auto_Open()
UserForm1.Show
Application.ScreenUpdating = False
Dim xPathAndFile As Variant
Dim xfn&
Dim xTxt$
Dim xA As Variant
Dim xB As Variant
Dim xi&
Dim xC As Variant
Dim xD As Variant
Dim wks As Worksheet
Dim xLastRow As Long
Dim rngX As Excel.Range
Dim wksE As Excel.Worksheet
'oder:
'xPathAndFile = ThisWorkbook.Path & "\" & "excel.ashx"
xPathAndFile = Application.GetOpenFilename("Files (*.ashx), *.ashx", Title:="File gesucht")
If xPathAndFile = False Then
MsgBox "Nichts ausgewählt!"
Exit Sub
End If
xfn = FreeFile
Open xPathAndFile For Binary As xfn
xTxt = Space(LOF(xfn))
Get xfn, 1, xTxt
Close xfn
'Zeilenunbrüche zur unterscheidung von Spaltenumbrüchen umbenennen
xTxt = Replace(xTxt, vbCrLf, Chr(0), 1, -1, 0)
'Umbrüche in den Zellen entfernen
xTxt = Replace(xTxt, vbCr, " ", 1, -1, 0)
'alle &lttd&gt durch Tab ersetzen
xTxt = Replace(xTxt, "&lttd&gt", vbTab, 1, -1, 1)
'Alle Html Tags entfernen
xTxt = Replace(xTxt, "&lttable&gt", "", 1, -1, 1)
xTxt = Replace(xTxt, "&lt/table&gt", "", 1, -1, 1)
xTxt = Replace(xTxt, "&lt/td&gt", "", 1, -1, 1)
xTxt = Replace(xTxt, "&lttr&gt", "", 1, -1, 1)
xTxt = Replace(xTxt, "&lt/tr&gt", "", 1, -1, 1)
xTxt = Replace(xTxt, "&ltb&gt", "", 1, -1, 1)
xTxt = Replace(xTxt, "&lt/b&gt", "", 1, -1, 1)
xTxt = Replace(xTxt, "&ltbr/&gt", "", 1, -1, 1)
Do While InStr(1, xTxt, "&lt", 1)
xTxt = Left(xTxt, InStr(1, xTxt, "&lt", 1) - 1) & Mid(xTxt, InStr(1, xTxt, "&gt", 1) + 1)
Loop
bei der Do While schleife, vorletzte Zeile stürzt es ab
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Run out of memory
Andreas
Kann es sein, dass in xTxt zu diesem Zeitpunkt es ein
&lt
gibt, aber kein entsprechendes
&gt
weil dann wird xTxt länger und länger und länger, weil
xtxt = Left(xtxt, InStr(1, xtxt, "&lt", 1) - 1) & Mid(xtxt, InStr(1, xtxt, "&gt", 1) + 1)
macht richtigerweise aus
abc&ltdef&gtghi
abcghi
ABER, aus
abc&ltdefghi
wird
abcabc&ltdefghi
Vielleicht solltest Du tatsächlich kontrollieren, ob ein
&gt
nach dem
&lt
tatsächlich nochmals vorkommt
Anzeige
AW: Run out of memory
Ryu_Hoshi
Hallo ANdres Walter. Kannst du mir das bitte in meinem code anpassen und posten bitte? Diesen Teil hat mir einer aus Forum gemacht und ich verstehe nicht so richtig was in der letzten Schleife gemacht wird.... Könntest du das bitte machen*auf den Knien rutschend*? :)
AW: Run out of memory
Andreas
Und hierzu die Erklärung:
1) Schleife machen, bis es kein "&lt" mehr in xTxT gibt (dann wird Schleife beendet/nicht mehr durchgeführt)
2) Suche nach einem "&gt" NACH dem ersten "&lt" in xTxt, ob vorhanden
3) Wenn vorhanden, dann Tag ausschneiden (z.B. aus abc&ltdef&gtghi wird abcghi
4) ansonsten
5) verlass die Schleife
6) Ende vom If (=Wenn) Block
7) Ende der Schleife, spring Sprung zum Anfang der Schleife
Gratuliere! Jatzt kannst Du programmieren!
Anzeige
AW: Run out of memory
Ryu_Hoshi
Danke! Der Fehler kommt aber leider immer noch und in dersleben Zeile.... :(
AW: Run out of memory
Ryu_Hoshi
problem von slebst gelöst
;

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