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

Makro bleibt stehen

Forumthread: Makro bleibt stehen

Makro bleibt stehen
13.09.2004 16:14:08
Stoffel
Hallo zusammen, mein Makro bleibt vor einer scheinbar problematischen Zeile stehen. Die Datei liegt auf dem Server https://www.herber.de/bbs/user/10847.xls. Vor Zeile 2 bleibt das Makro stehen. Ich kann nicht erkennen, woran das liegt. Danke für eine Antwort, Stoffel

Sub Stoffel()
Sheets("Tabelle1").Cells.Replace What:="##", Replacement:=Chr(10), _
LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False, _
SearchFormat:=False, ReplaceFormat:=False
End Sub

Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Makro bleibt stehen
13.09.2004 18:48:38
Axel
Hallo Stoffel,
das Problem ist der Inhalt der Zelle F3. Diese enthält 989 Zeichen.
Nach meinen Tests darf der Zellinhalt + Suchstring + Ersetzungsstring max. 913 Zeichen betragen.
Du kannst das einfach nachvollziehen, indem du die Zelle auswählst und dann per Hand die Ersetzung durchführst (über &ltStrg&gth). Es erscheint dann die Fehlermeldung "Formel ist zu lang"
Bei Verwendung von VBA-Code zum Ersetzen über Replace() erscheint dann keine Fehlermeldung und die Ersetzung wieder einfach terminiert.
Unbefriedigend aber leider eine Tatsache.
Gruß
Axel
Anzeige
AW: Makro bleibt stehen
Reinhard
Hi Stoffel,
lass mal searchformat und replaceformat weg, die finde ich bei mir gar nicht, xl2000.
Weiterhin ist Zelle F3 mit 989 Zeichen anscheinend zu groß, kann an replace liegen oder am verfügbaren Speicher *mutmaß*
Beim nachfolgenden Makro tritt bei mir der fehler bei 912 auf .

Sub Stoffel()
Range("A10") = ""
For n = 1 To 1000
Range("B10") = n
Range("A10") = Range("A10") & "##"
Range("A10").Replace What:="##", Replacement:=Chr(10), _
LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False
Next n
End 

Sub
Dieses Makro läuft ohne Fehlermeldung, aber die "##" in F3 bleiben bestehen, muss noch jmd verbessern:

Sub Makro1()
For Each Zelle In UsedRange.Cells
If Len(Zelle.Value) < 900 Then
Zelle.Replace What:="##", Replacement:=Chr(10), LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False
Else
satz = Zelle.Value
n = 1
While n
satz = Left(satz, n - 1) & Chr(10) & Mid(satz, n + 2)
n = InStr(n, satz, "##")
Wend
End If
Next Zelle
End Sub

Gruß
Reinhard
Anzeige
AW: Makro bleibt stehen
14.09.2004 11:16:56
Hans
Hallo,
das Problem liegt in der Tat in der Textlänge. Verwende dieses Makro:

Sub Ersetzen()
Dim rng As Range
For Each rng In ActiveSheet.UsedRange.Cells
rng.Value = WorksheetFunction.Substitute(rng.Value, "##", Chr(10))
Next rng
End Sub

Gruss hans
Anzeige
;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige