Terry verwendet ständig die PROPER-Arbeitsblattfunktion, um die Groß- und Kleinschreibung von Text in seinen Arbeitsblättern zu ändern. Er fragt sich, ob es eine Möglichkeit gibt, die Funktion anzuweisen, bestimmte Wörter zu ignorieren, damit sie nicht mit einem Großbuchstaben beginnen. Es ist nicht ungewöhnlich, dass er nach der Verwendung von PROPER zurückgehen und Wörter wie „the“ oder „an“ in Kleinbuchstaben ändern muss. Wenn PROPER das automatische Ändern solcher Wörter überspringen könnte, wäre dies eine große Hilfe.

Eine Möglichkeit, dies zu erreichen, besteht darin, die Arbeitsblattfunktion SUBSTITUTE in Verbindung mit der Funktion PROPER zu verwenden. Wenn Sie beispielsweise Instanzen des Wortes „The“ mit „the“ suchen möchten, können Sie Folgendes verwenden:

=SUBSTITUTE(PROPER(A1)," The "," the ")

Beachten Sie die Aufnahme des Leerzeichens vor und nach dem, wonach Sie suchen und was Sie ersetzen. Dies stellt sicher, dass nur vollständige Wörter geändert werden. Außerdem wird sichergestellt, dass am Anfang des Zellenwerts oder am Ende keine Änderungen vorgenommen werden.

Wenn Sie nach anderen Wörtern suchen möchten, die ersetzt werden müssen, können Sie einfach die Anzahl der Instanzen von SUBSTITUTE in der folgenden Formel erhöhen:

=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(PROPER(A1)," The ", " the ")," An "," an ")," And "," and ")

Dies kann natürlich etwas umständlich werden, wenn Sie viele Wörter haben, die Sie von der Änderung ausschließen möchten. In diesem Fall müssen Sie ein Makro verwenden. Das folgende Makro, das als benutzerdefinierte Funktion geschrieben wurde, kann verwendet werden, um alle Wörter in einer Zelle in Anfangsbuchstaben umzuwandeln (genau wie bei PROPER). Stellen Sie jedoch sicher, dass bestimmte definierte Wörter in Kleinbuchstaben geschrieben sind.

Function Title(ByVal ref As Range) As String     Dim vaArray As Variant     Dim c As String     Dim i As Integer     Dim J As Integer     Dim vaLCase As Variant     Dim str As String

' Array contains terms that should be lower case     vaLCase = Array("a", "an", "and", "in", "is", _       "of", "or", "the", "to", "with")



c = StrConv(ref, 3)

'split the words into an array     vaArray = Split(c, " ")

For i = (LBound(vaArray)+1) To UBound(vaArray)

For J = LBound(vaLCase) To UBound(vaLCase)

' compare each word in the cell against the             ' list of words to remain lowercase. If the             ' Upper versions match then replace the             ' cell word with the lowercase version.

If UCase(vaArray(i)) = UCase(vaLCase(J)) Then                 vaArray(i) = vaLCase(J)

End If         Next J     Next i

' rebuild the sentence     str = ""

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

str = str & " " & vaArray(i)

Next i

Title = Trim(str)

End Function

Um das Makro zu verwenden, müssen Sie lediglich Folgendes in Ihrem Arbeitsblatt verwenden:

=Title(A1)

Auf dieser Site finden Sie auch einen zusätzlichen Ansatz zum Erreichen der gewünschten Konvertierung:

http://dmcritchie.mvps.org/excel/proper.htm

_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 (10560) gilt für Microsoft Excel 2007, 2010, 2013, 2016, 2019 und Excel in Office 365. Eine Version dieses Tipps für die ältere Menüoberfläche von Excel finden Sie hier: