Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1376to1380
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
Inhaltsverzeichnis

Probleme bei Replace

Probleme bei Replace
13.08.2014 16:07:09
Heiti
Moin,
ich habe mir folgenden Code gebastelt:
        nummer = ExcelWkb.Sheets("Anweisungstexte").Cells(i, 1).Text
neu = ExcelWkb.Sheets("Anweisungstexte").Cells(i, 3).Text & vbCrLf & ExcelWkb.Sheets(" _
Anweisungstexte").Cells(i, 4).Text
If nummer  "" Then
Selection.Replace What:=nummer, Replacement:=neu, LookAt:= _
xlWhole, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
End If
dabei bricht er leider unregelmäßig mit dieser Meldung ab:
Laufzeitfehler '13': Typen unverträglich
Kann mir da jemand bei helfen? Kann es sein, dass er mit einigen Zeichen nicht zurecht kommt? Oder gibt es eine maximale Länge die er einhalten muss?
Ein Beispiel für einen langen Text:
"Bereich X (Z1)
Meldung des Alarms an eine ständig besetzte Stelle und Veranlassung nochfolgender
Handlungen:
Innerhalb der Geschäftszeiten:
- Ereignis auslösen
- Benachrichtigung Person XY
- Benachrichtigung Person ZV
Außerhalb der Geschäftzeiten:
- Ereignis auslösen
- Benachrichtigung Person XY telefonisch
- Benachrichtigung Person ZV per E-Mail"
Vielen Dank
LG Heiti

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

Betreff
Datum
Anwender
Anzeige
AW: Probleme bei Replace
13.08.2014 20:08:33
Adis
Hallo
mir ist im Text etwas aufgefallen bei der Zeile:
- Ereignis auslösen (das vorgestelle -Zeichen)
Ich erinnere mich das es Probleme gibt wenn als 1. Zeichen ein - oder = Zeichen steht.
Dann denkt Excel es waere eine Formel und kommt mit der Meldung Typen unvertraeglich.
In solchen Faellen prüfe ich es mit einer Msgbox nach, dann weiss ich ob es der Fehler ist.
Ich aendere dann den Original Wert von neu durch vorstellen von ' in ein Textformat um.
If Left(neu,1) = "-" Or Left(neu,1) = "=" Then MsgBox " ' " & neu
If Left(neu,1) = "-" Or Left(neu,1) = "=" Then neu = " ' " & neu
Gruss Adis

Anzeige
AW: Probleme bei Replace
14.08.2014 07:30:36
Heiti
Moin,
danke aber das wird es nicht sein. Der Text den ich einfüge ist alles in den Anführungsstrichen. Also inklusive Zeilenumbrüche etc. Des Weiteren, habe ich Testweise mal ein ' an den Anfang gesetzt in der Hoffnung es würde helfen.
LG

AW: Probleme bei Replace
14.08.2014 15:43:42
Adis
Hallo
normalerweise könnte ich schreiben ich bin raus. Wenn mich aber etwas aergert bin ich ein verbissenes Kerlchen das wissen will was da falsch ablaeuft. Dann werde ich sehr sehr grüdlich und überlege wie man dem Phaenomen auf die Spur kommen kann.
Sollte es im Programm eine On Error Anweisung geben bitte mal rausnehmen damit Excel direkt im Editor anzeigt in weicher Befehlszeile der Fehler auftritt. Ob sie bei Selection.Replace liegt, oder vorher beim laden der Variablen?
Ein weiterer Trick von mir ist: On Error Goto Fehler
Mit einer Fehler Routine vor (End Sub). Dazu muss man das normale Programm vor der Fehlermeldung mit (Exit Sub) beenden.
Dann schreibe ich mir in zwei Nachbarzellen die frei ist den Wert von nummer und neu
Meistens nur von 1-2 Ereignissen und unterbreche das Programm mit (Exit Sub) zum prüfen.
Dann schaue ich mir in Ruhe an ob mir in den Werten etwas auffaellt. z.B. Sonderzeichen die Excel nicht verrbeiten kann.
Im Zweifel mal eine ganze Fehlerliste erstellen und drüberschauen. Irgendwann faellt einem der Fehler auf.
Fehler: f=f+1
'Prüfroutine mit Zaehler f+1
Range(freiZelle)=nummer
Range(freiZelle2)=neu
İf f = 2 Then Exit Sub
Resume Next
End Sub

Anzeige
AW: Probleme bei Replace
15.08.2014 07:20:45
Heiti
Moin,
ich hab es gefunden.
Microsoft hat hier scheinbar eine Länge von 255 Zeichen als Grenze gesetzt.
Hier mein Quellcode mit dem es läuft:
        nummer = ExcelWkb.Sheets("Anweisungstexte").Cells(i, 1).Text
neu = ExcelWkb.Sheets("Anweisungstexte").Cells(i, 2).Text & vbCrLf & ExcelWkb.Sheets(" _
Anweisungstexte").Cells(i, 3).Text
Laenge = Len(neu)
If nummer  "" Then
If Laenge > 510 Then
neu1 = Left(neu, 253) & "§$"
neu2 = Right(neu, Laenge - 253)
neu2 = Left(neu2, 253) & "§$"
neu3 = Right(neu, Laenge - 506)
Selection.Replace What:=nummer, Replacement:=neu1, LookAt:= _
xlWhole, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Selection.Replace What:="§$", Replacement:=neu2, LookAt:= _
xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Selection.Replace What:="§$", Replacement:=neu3, LookAt:= _
xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
ElseIf Laenge > 255 Then
neu1 = Left(neu, 253) & "§$"
neu2 = Right(neu, Laenge - 253)
Selection.Replace What:=nummer, Replacement:=neu1, LookAt:= _
xlWhole, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Selection.Replace What:="§$", Replacement:=neu2, LookAt:= _
xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Else
Selection.Replace What:=nummer, Replacement:=neu, LookAt:= _
xlWhole, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
End If
End If
Vielen Dank trotzdem für die Hilfe

Anzeige
AW: Probleme bei Replace
15.08.2014 19:29:08
Adis
Raffiniert, Hut ab .... Ideen muss man haben.
Computer sind gutmütig und lassen sich austricksen. Hauptsache es funktioniert
Gruss Adis

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige