Сделать первую букву слова заглавной, не изменяя в настоящее время Заглавная

У меня есть несколько элементов текста в Excel, и я хотел бы использовать первую букву каждого слова с заглавной буквы. Тем не менее, большая часть текста содержит фразу «IT», и с использованием текущих методов написания заглавных букв (PROPER) она заменяется на «It». Есть ли способ сделать заглавной только первую букву каждого слова без использования DE заглавных букв в каждом слове?


person dojogeorge    schedule 20.11.2012    source источник
comment
Я хотел бы сделать заглавной первую букву КАЖДОГО слова в каждой ячейке   -  person dojogeorge    schedule 20.11.2012
comment
Замена текущих значений или в новой ячейке?   -  person brettdj    schedule 20.11.2012


Ответы (4)


Вот способ VBA, добавьте его в модуль и =PrefixCaps("A1")

Public Function PrefixCaps(value As String) As String
    Dim Words() As String: Words = Split(value, " ")
    Dim i As Long
    For i = 0 To UBound(Words)
        Mid$(Words(i), 1, 1) = UCase$(Mid$(Words(i), 1, 1))
    Next
    PrefixCaps = Join(Words, " ")
End Function
person Alex K.    schedule 20.11.2012
comment
+1 для LHS Mid$. Я предлагаю вам добавить TRIM к вашему Split, чтобы учесть непреднамеренные пробелы. - person brettdj; 20.11.2012

Использовали веб-сайт http://www.textfixer.com/tools/capitalize-sentences.php и вставил все это вместо

person dojogeorge    schedule 20.11.2012

Все это было немного сложно, но я обнаружил, что если ваша электронная таблица довольно проста, вы можете скопировать и вставить ее в слово и использовать ее функции редактирования, а затем скопировать и вставить ее обратно в Excel. Работал довольно хорошо для меня.

person Magic Hayes    schedule 19.12.2012

Исправляет двойные пробелы в тексте:

    Public Function PrefixCaps(value As String) As String
    Dim Words() As String: Words = Split(value, " ")
    Dim i As Long
    For i = 0 To UBound(Words)
        If Len(Words(i)) > 0 Then
            Mid$(Words(i), 1, 1) = UCase$(Mid$(Words(i), 1, 1))
        End If
    Next
    PrefixCaps = Join(Words, " ")
End Function`
person RatherB    schedule 06.05.2021