Gary hat ein Arbeitsblatt mit unstrukturierten Textzeichenfolgen, die er in Komponentenelemente analysieren muss. Manchmal muss er nach Textarten suchen und nicht nach einem bestimmten Zeichen. Beispielsweise möchte er möglicherweise das erste, das N-te oder das letzte Vorkommen eines fetten Zeichens (oder eines kursiven Zeichens) in der Zelle finden.

In Excel gibt es keine intrinsische Funktion oder ein Tool, um diese Aufgabe auszuführen.

Die reguläre Funktion „Suchen und Ersetzen“ gibt Übereinstimmungen für die Formatierung zurück, jedoch nicht die Position, an der diese Übereinstimmungen auftreten. Um genau zu wissen, was Sie suchen möchten, müssen Sie ein Makro verwenden. Sie können die Positionierungsinformationen wieder in Ihr Arbeitsblatt aufnehmen, wenn Sie das Makro als benutzerdefinierte Funktion implementieren.

Das folgende Makro akzeptiert einen Bereich (der eine bestimmte Zelle sein soll), einen Indikator dafür, ob Sie fett oder kursiv (oder beides) möchten, und das Auftreten dieser Formatierung.

Function FindNth(r As Range, sType As String, N As Integer) As Integer     Dim J As Integer     Dim iCount As Integer     Dim sStyle As String          If r.Count = 1 Then         FindNth = 0         iCount = 0         For J = 1 To Len(r.Text)

sStyle = r.Characters(J, 1).Font.FontStyle             If LCase(sStyle) = LCase(sType) Then                 iCount = iCount + 1                 If N = 0 Then                     FindNth = J                 Else                     If N = iCount Then                         FindNth = J                         Exit For                     End If                 End If             End If         Next J     Else         FindNth = -1     End If End Function

Um das Makro zu verwenden, verwenden Sie eine der folgenden Formeln in Ihrem Arbeitsblatt:

=FindNth(A1, "bold", 2)

=FindNth(A1, "italic", 3)

=FindNth(A1, "bold italic", 1)

In jedem Fall gibt der dritte Parameter an, welches Vorkommen der angegebenen Formatierung Sie suchen möchten. Die Funktion gibt die Zeichenposition dieses Vorkommens innerhalb der Zelle zurück. Wenn dies nicht der Fall ist, wird 0 zurückgegeben. Wenn Sie im ersten Parameter der Funktion mehrere Zellen angeben, wird -1 zurückgegeben. Wenn Sie ein Vorkommen von 0 angeben, wird die Zeichenposition des letzten Vorkommens des angegebenen Formats zurückgegeben.

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