Larry wurde beauftragt, jede Zelle in einer Spalte in mehreren Excel-Arbeitsmappen zu ersetzen oder Text hinzuzufügen. Das Problem ist, dass dieser neue Text unterstrichen und in einer anderen Farbe sein muss. Suchen und Ersetzen unterstreicht und färbt den gesamten Text in den Zellen, aber Larry benötigt die Formatierung, um nur auf den hinzugefügten Text angewendet zu werden.

Wenn Sie diese Art von Aufgabe nur einige Male ausführen müssen, besteht die einfachste Lösung möglicherweise darin, die Hilfe von Microsoft Word in Anspruch zu nehmen. Sie können den Zellenbereich in ein Word-Dokument kopieren, die Formatierungs- und Ersetzungsfunktionen von Word verwenden, um die Formatierungsänderungen vorzunehmen, und dann den Text zurück in Ihr Excel-Arbeitsblatt kopieren.

Wenn Sie diese Aufgabe häufiger ausführen müssen, ist es am besten, ein Makro zu verwenden. Das folgende Makro kann verwendet werden, um entweder Text in den Zellen einer Spalte zu ändern oder um den Zellen Text hinzuzufügen.

Sub AddFormatedText()

Dim K As Long     Dim lCol As Long     Dim LastRow As Long     Dim sFind As String     Dim sReplace As String     Dim FullCells As Range     Dim c As Range

' Column to work on     lCol = 1

' Text to be replaced in the cell     ' If this variable is empty, then     ' the contents of sReplace are added     ' to the end of the cell     sFind = ""



' Text to replace sFind or to add to the cell     sReplace = "More Text"



' Find last row in column A     LastRow = Cells(Rows.Count, "A").End(xlUp).Row

' Set range to check     Set FullCells = Range(Cells(1, lCol), Cells(LastRow, lCol))

' Start looking through each cell     For Each c In FullCells         K = 0         ' Only check if there is not a formula in the cell         ' and if the cell has some text in it         If Not c.HasFormula And Len(c.Text) > 0 Then             If sFind > "" Then                 ' Replace first found instance of text in sFind                 K = InStr(c.Text, sFind)

If K > 0 Then                     c = Left(c.Text, K - 1) & sReplace & _                       Mid(c.Text, K + Len(sFind))

End If             Else                 K = Len(c.Text)

' Add the text to the cell (plus a space)

c = c & " " & sReplace                 ' Adjust starting position for formatting                 K = K + 2             End If         End If

' Format the added text, if any         If K > 0 Then             With c.Characters(Start:=K, Length:=Len(sReplace)).Font                 .Underline = xlUnderlineStyleSingle                 .Color = vbRed             End With         End If     Next c End Sub

Es gibt drei Änderungen, die Sie vornehmen müssen, um das Makro zu verwenden. Zunächst müssen Sie sicherstellen, dass die Variable lCol auf die Spaltennummer festgelegt ist, die Sie beeinflussen möchten. Zweitens sollten Sie sFind gleich dem Text setzen, den Sie in den Zellen suchen und ersetzen möchten. Wenn Sie möchten, können Sie sFind leer lassen (wie oben), wenn Sie der Zelle nur Text hinzufügen möchten.

Schließlich müssen Sie sReplace gleich dem setzen, durch das Sie sFind ersetzen möchten, oder dem, was Sie den Zellen hinzufügen möchten.

Das Makro durchsucht jede Zelle in der angegebenen Spalte. Wenn die Zelle keine Formel enthält und bereits Text enthält, wird Ihr Text ersetzt oder angehängt. Wenn schließlich eine Änderung an der Zelle vorgenommen wurde, wird alles, was sich in sReplace befand, unterstrichen und rot angezeigt. Sie sollten beachten, dass bei einer Änderung an der Zelle alle vorhandenen Formatierungen in der Zelle durch die vorgenommene Änderung überschrieben werden.

_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 (9302) gilt für Microsoft Excel 2007, 2010, 2013, 2016, 2019 und Excel in Office 365.