Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
476to480
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
476to480
476to480
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

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

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
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*? :)
Anzeige
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!
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
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige