Страницы: 1
RSS
Латинские слова сделать заглавными буквами
 
Есть такой код
Код
Sub AllLatinToUpper()
    Dim i&, a, Cel As Range, Rn As Range
    Set Rn = Range(Cells(2, 1), Cells(Rows.Count, 3).End(xlUp))
    For Each Cel In Rn
        a = Split(Cel.Value)
        For i = 0 To UBound(a)
            If Left(a(i), 1) & "" Like "[a-z]" Then
                a(i).Value = UCase(a(i).Value)
            End If
        Next
        Cel.Value = Join(a)
    Next
End Sub
Логика такая, делим текст в ячейке на слова, если слово начинается с латинской буквы, его нужно сделать полностью строчными буквами. Проблема у меня со строкой
Код
a(i).Value = UCase(a(i).Value)
Не пойму как мне правильно здесь написать, чтобы все слово было заглавными буквами.

Заранее спасибо за помощь.
 
А в чем собственно проблема, приложите файл пример.
"Все гениальное просто, а все простое гениально!!!"
 
Код
            If Left(a(i), 1) Like "[A-z]" Then
                a(i) = UCase(a(i))
            End If
Изменено: Ігор Гончаренко - 17.02.2020 22:01:54
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Здравствуйте, Игорь!

Код
Debug.Print "\" Like "[A-z]"
Владимир
 
спасибо, я в курсе:
[
\
]
^
_
`
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Цитата
Nordheim написал:
А в чем собственно проблема, приложите файл пример.
 
Код
Sub AllLatinToUpper()
    Dim i&, a, Cel As Range, Rn As Range
    Set Rn = Range(Cells(2, 1), Cells(1000000, 3).End(xlUp))
    For Each Cel In Rn
        a = Split(Cel.Value, " ")
        For i = 0 To UBound(a)
            If Left(a(i), 1) Like "[A-z]" Then
                a(i) = UCase(a(i))
            End If
        Next
        Cel.Value = Join(a)
    Next
End Sub
Соблюдение правил форума не освобождает от модераторского произвола
 
Ігор Гончаренко, спасибо большое. Заработало.
Страницы: 1
Наверх