Страницы: 1
RSS
Замена первой буквы на заглавную в ячейки, При помощи VBA
 
Коллеги, всем привет. Прошу подсказки в написании кода, с помощью которого, первые буквы в содержащихся в определенном столбце ячейках будут заменяться на Заглавные. На форуме нашел пару веток по этому вопросу, но в предоставленные варианты не полностью подходят мне, а именно:
1. Меняются все ячейки на листе (а мне нужна определенная колонка)
2. Меняются вновь забитые слова, а те которые были введены До - не изменяются (нужно, чтобы все слова в колонке изменялись, которые были забиты до введения макроса и после)

Заранее Спасисбо!
Код
Private Sub Worksheet_Change(ByVal Target As Range)
    On Error Resume Next
    If Target.Count <> 1 Then Exit Sub
    If Target.Column <> 1 Then Exit Sub
    If Len(Target) > 0 Then
        Application.EnableEvents = False
        If Len(Target) > 33 Then Target.Offset(0, 1) = Right(Target, Len(Target) - 33)
        Target = UCase(Left(Target, 1)) & Mid(Target, 2, 32)
        Application.EnableEvents = True
    End If
End Sub

 
Цитата
obratka написал:
Меняются все ячейки на листе (а мне нужна определенная колонка)
?В вашем примере обрабатывается первый столбец, а не все ячейки.
Цитата
obratka написал:
нужно, чтобы все слова в колонке изменялись, которые были забиты до введения макроса
Сделайте подобный макрос на событие открытия книги или что-то подобное, дабы не вешать систему.
 
Дело в том, что я в макросах очень слаб и как изменить эти условия не знаю.
Поэтому и обращаюсь на форум
 
Цитата
obratka написал: (а мне нужна определенная колонка)
Какая конкретно?
Согласие есть продукт при полном непротивлении сторон
 
obratka, добрый день!
так как вы не указали конкретную область для работы макроса, пока есть только такой код:
Скрытый текст

если нужно указать в самом коде конкретный столбец, то замените Selection на Range(":") (между скобками поставьте нужную вам область)
Изменено: VwwV - 08.10.2015 22:53:18
 
добрый вечер,примените например функцию
Код
Function uu$(st$)
   uu = UCase(Left(st, 1)) & Mid(st, 2)
End Function
 
Добрый день,попробуйте такой макрос,если Ваш столбец,например A.
Код
Sub replica()
   Dim r1 As Range
     For Each r1 In Intersect(ActiveSheet.UsedRange, Columns("A"))
       r1 = UCase(Left(r1, 1)) & Mid(r1, 2)
     Next
End Sub
Страницы: 1
Наверх