ich bin ein DAU in VBA, aber da ich nach einer besseren Funktion als die "suchen und ersetzen" Funktion von Excel gesucht habe.
Denn dann wird die Formatierung einzelner Wörter nicht übernommen und anstelle, dass ich nur 1 Wort ändern muss, müsste ich dann 4.
Ich habe nämliche ca. 200 Zellen in den ich mehr als 255 Zeichen habe und viele Wörter innerhalb der Zellen sind redundant.
Nun habe ich dieses Script gefunden:
Sub CharactersReplace(Rng As Range, FindText As String, ReplaceText As String, Optional _
MatchCase As Boolean = False)
'UpdatebyExtendoffice20160711
Dim I As Long
Dim xLenFind As Long
Dim xLenRep As Long
Dim K As Long
Dim xValue As String
Dim M As Long
Dim xCell As Range
xLenFind = Len(FindText)
xLenRep = Len(ReplaceText)
If Not MatchCase Then M = 1
For Each xCell In Rng
If VarType(xCell) = vbString Then
xValue = xCell.Value
K = 0
For I = 1 To Len(xValue)
If StrComp(Mid$(xValue, I, xLenFind), FindText, M) = 0 Then
xCell.Characters(I + K, xLenFind).Insert ReplaceText
K = K + xLenRep - xLenFind
End If
Next
End If
Next
End Sub
Sub Test_CharactersReplace()
Dim xRg As Range
Dim xTxt As String
Dim xCell As Range
On Error Resume Next
If ActiveWindow.RangeSelection.Count > 1 Then
xTxt = ActiveWindow.RangeSelection.AddressLocal
Else
xTxt = ActiveSheet.UsedRange.AddressLocal
End If
Set xRg = Application.InputBox("Select a range:", "Kutools for Excel", xTxt, , , , , 8)
If xRg Is Nothing Then Exit Sub
Call CharactersReplace(xRg, "Ersetze das Wort", "Gegen das Wort", True)
End Sub
Das Skript funktioniert... aber leider nur mit Zellen weniger als 255 Zeichen... Jetzt habe ich allerhand gelesen wegen eines Umweges mit Arrys und so weiter.
Aber als DAU kann ich leider das nicht integrieren, geschweige, dass ich coden könnte.
Könnt ihr mich dahingehend unterstützen?
Vielen Dank und Beste Grüße
Marc St.