Gary möchte eine Abkürzung wie „sys“ suchen und ersetzen und durch „Systeme“ ersetzen. Das Problem ist, dass, wenn er alle Vorkommen ersetzt, vorhandene Instanzen von „system“ in „systemstem“ umgewandelt werden. Gary könnte jedes Vorkommen untersuchen und einzeln ersetzen, aber das würde ewig dauern. Er fragt sich, ob es eine Möglichkeit gibt, Excel dazu zu bringen, nur „ganze Wörter“ von „sys“ durch „Systeme“ zu ersetzen, wie es in Word der Fall ist.

Diejenigen, die mit den Such- und Ersetzungsfunktionen von Excel vertraut sind, könnten auf den ersten Blick denken, dass Sie den „Gesamten Zelleninhalt abgleichen“

verwenden könnten Einstellung, um die Arbeit zu erledigen. Dies funktioniert jedoch nur, wenn die Abkürzung „sys“ das einzige in einer Zelle ist. In Garys Situation ist das nicht der Fall. Er hat Sätze und ganze Sätze, die „sys“ enthalten (wie in „sys admin“ oder „Ein sys-Check ist erforderlich“). So seine Bitte um so etwas wie die Einstellung „Ganzes Wort“ von Word.

In diesem Sinne gibt es einige Dinge, die Sie ausprobieren können. Welche Lösung für Sie am besten geeignet ist, hängt von der Art des Textes in Ihrem Arbeitsblatt ab.

Wenn zum Beispiel der einzige wahrscheinliche Verwirrungspunkt das Wort „System“ ist,

dann ist es am einfachsten, „system“ einfach durch etwas Einzigartiges wie „\ {[]}“ zu ersetzen. (Ich mag Klammern und Klammern, weil sie in den meisten Daten eindeutig sind.) Ersetzen Sie dann „sys“ durch „systems“ und ersetzen Sie schließlich „\ {[]}“ durch „system“.

Wenn es neben „System“ noch andere Verwirrungspunkte gibt, können Sie Leerzeichen in Ihren Find What-Text einfügen. Mit anderen Worten, suchen Sie nach „sys“ (mit den Leerzeichen) und ersetzen Sie es durch „systems“ (wieder mit den Leerzeichen). Dadurch werden alle Vorkommen korrekt gefunden, solange auf sys kein Satzzeichen folgt, nicht am Anfang einer Zelle und nicht am Ende einer Zelle.

Natürlich können Sie zusätzliche Suchvorgänge durchführen, um auf einige dieser Informationen zuzugreifen. Zum Beispiel könnten Sie nach „sys“ suchen (Leerzeichen nur am Ende)

Vorkommen am Anfang einer Zelle zu finden. Es würde Ihnen nichts nützen, nach „sys“ zu suchen (Leerzeichen nur am Anfang), da dies mit jedem Auftreten von „System“ übereinstimmen würde, dem ein Leerzeichen vorangestellt ist. Bei sequentiellen Suchen können Sie auch nach „sys“ suchen, gefolgt von einem Punkt, einem Komma, einem Fragezeichen, einem Ausrufezeichen, einem Semikolon usw.

Wenn Sie lieber ein Makro verwenden möchten, finden Sie im Folgenden ein Beispiel dafür, wie Sie das Problem angehen können. Das Makro fordert Sie auf, zu suchen, was Sie suchen und durch was Sie es ersetzen möchten.

Sub ReplaceOnlySpecifirdWord()

Dim c As Range, rng As Range, rngArea As Range     Dim vFind As String, vReplace As String     Dim v As Variant     Dim arrSplit As Variant     Dim s As String     Dim i As Integer, n As Long     Dim b As Boolean     Const csDELIMITER = " "



On Error Resume Next     ' Reference Constants only     Set rng = ActiveSheet.UsedRange.SpecialCells(xlCellTypeConstants)

If rng Is Nothing Then         MsgBox "There are no constants on active sheet...", vbExclamation         Exit Sub     End If     On Error GoTo 0

' Get Find and Replace strings     v = InputBox(Prompt:="Please enter String to be replaced.")

If v <> "" Then         vFind = v     Else         MsgBox "Wrong entry; app is going to be terminated.", vbExclamation         Exit Sub     End If

v = InputBox(Prompt:="Please enter Replace String.")

If v <> "" Then         vReplace = v     Else         MsgBox "Wrong entry; app is going to be terminated.", vbExclamation         Exit Sub     End If

Application.ScreenUpdating = False     Application.Calculation = xlCalculationManual     n = 0     For Each rngArea In rng.Areas         For Each c In rngArea.Cells             b = False             arrSplit = Split(c.Value, csDELIMITER)

For i = LBound(arrSplit) To UBound(arrSplit)

If arrSplit(i) = vFind Then                     arrSplit(i) = vReplace                     n = n + 1                     b = True                 End If             Next i             If b Then                 s = vbNullString                 For i = LBound(arrSplit) To UBound(arrSplit)

s = s & arrSplit(i)

If i <> UBound(arrSplit) Then                         s = s & csDELIMITER                     End If                 Next i                 c.Value = s             End If         Next c     Next rngArea

Application.Calculation = xlCalculationAutomatic     MsgBox "Replaced " & n & " words...", vbInformation End Sub

Das Makro erledigt seine Arbeit, indem es (nacheinander) alle Wörter in jeder Zelle findet.

Wenn das Wort mit dem übereinstimmt, wonach Sie suchen, wird es ersetzt. Der Zellinhalt wird dann wieder zusammengesetzt.

Dieser Ansatz hat einen Nachteil: Das Matching ist sehr wörtlich. Dies bedeutet, dass „sys“ mit „sys“ übereinstimmt, jedoch nicht mit „Sys“, „SYS“ oder „sys“, gefolgt von einem Satzzeichen. (Das Makro verwendet Leerzeichen als Trennzeichen zwischen Wörtern.)

_Hinweis: _

Wenn Sie wissen möchten, wie die auf dieser Seite (oder auf einer anderen Seite der ExcelTips-Websites) beschriebenen Makros verwendet werden, habe ich eine spezielle Seite vorbereitet, die hilfreiche Informationen enthält.

ExcelTips ist Ihre Quelle für kostengünstige Microsoft Excel-Schulungen.

Dieser Tipp (13391) gilt für Microsoft Excel 2007, 2010, 2013, 2016, 2019 und Excel in Office 365.