Live-Forum - Die aktuellen Beiträge
Datum
Titel
29.03.2024 13:14:12
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1240to1244
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

Fehler mit Replacement

Fehler mit Replacement
Stefan
Hallo zusammen,
in einem VBA-Programm nutze ich folgende Programmzeile, die mir #### durch einen vorher ermittelten Text ersetzen soll.
Range("A4").Replace What:="####", Replacement:=strText
Wenn der Text max. 255 Zeichen beinhaltet ist alles ok. Sobald ich mehr als 255 Zeichen in strText stehen habe, bekomme ich den Hinweis "Laufzeitfehler '13': Datentyp unverträglich". Wahrscheinlich liegt es daran, dass die Zelle nicht mehr aufnehmen kann oder dass mittels Replacement nicht mehr Zeichen übergeben werden können. Kennt jemand eine Lösung für das Problem.
Vielen Dank im Voraus
Stefan

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Fehler mit Replacement
08.12.2011 10:28:46
Rudi
Hallo,
versuchs mal so:
  strTmp = Range("A4")
strLeft = Left(strTmp, InStr(strTmp, "####") - 1)
strRight = Mid(strTmp, InStr(strTmp, "####") + 5)
strTmp = strLeft & strText & strRight
Range("A4") = strTmp

Gruß
Rudi
AW: Fehler mit Replacement
08.12.2011 10:29:53
ransi
HAllo
Wenn du A4 in eine Stringvariable einliest,
die Ersetzung in der Variablen vornimst,
die Variable zurückschreibst,
dann gehts.
;-)
Option Explicit


Public Sub machs()
Dim strText As String
Dim strTmp As String
strText = String(300, "X")
strTmp = Range("A4").Text
MsgBox Len(strTmp)

strTmp = Replace(strTmp, "####", strText)
MsgBox Len(strTmp)

Range("A4").Value = strTmp
MsgBox Len(Range("A4").Text)
End Sub


ransi
Anzeige
AW: Fehler mit Replacement
08.12.2011 10:30:16
Nepumuk
Hallo,
eine Möglichkeit diese Beschränkung zu umgehen:
Public Function fncReplace( _
        ByVal strSource As String, _
        ByVal strPattern As String, _
        ByVal strReplace As String) As String

    Dim objRegEx As Object
    Set objRegEx = CreateObject("VBScript.RegExp")
    With objRegEx
        .IgnoreCase = True
        .Global = True
        .MultiLine = True
        .Pattern = strPattern
        fncReplace = .Replace(strSource, strReplace)
    End With
    Set objRegEx = Nothing
End Function

Public Sub Test()
    Dim strText As String
    strText = String$(1000, "Ä")
    Range("A4").Value = fncReplace(Range("A4").Text, "#{4}", strText)
End Sub

Du musst nur bei den Pattern (im Beispiel "#{4}" sucht nach genau 4*#) aufpassen was du da angibst.
Gruß
Nepumuk
Anzeige
AW: Fehler mit Replacement
08.12.2011 10:54:32
Stefan
Vielen Dank für Euere Tipps.
Es sieht vielversprechend aus, ich habe ja die freie Auswahl.
Herzlichen Dank, Stefan

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige