Страницы: 1
RSS
Проверка размера первой буквы в предложение.
 
Добрый день!  
 Как сделать так что бы при переходе на другую ячейку, значение в ячейке, где только что ввели предложение, приводилось в один вид, т.е. начиналось с большой буквы - "Какой то департамент".  
А не "каКой то департВмент" или "какОЙ то департамент" или "какой то депАртАмент" и т.д. Но может быть и сразу правильно записан, тогда пропускать.
 
Формулой ПРОПНАЧ() можно, но это уже в другой ячейке будет...
 
Формулой я знаю как, нужно именно макросом, и без использования других ячеек.
 
Формула:  
=ЗАМЕНИТЬ(СТРОЧН(СЖПРОБЕЛЫ(A1));1;1;ПРОПИСН(ЛЕВСИМВ(СЖПРОБЕЛЫ(A1);1)))  
Мкросом на Worksheet_Change по столбцу А. Я не знаю как эту формулу перевести в VBA. А ведь как-то можно функции Excel писать в VBA.
 
Range("A1") = Left(UCase(Range("A1")), 1) & Right(LCase(Range("A1")), Len(Range("A1")) - 1)
Bite my shiny metal ass!      
 
Private Sub Worksheet_SelectionChange(ByVal Target As Range)  
Dim list As String  
Dim aCell As Range  
 
Set aCell = ActiveCell  
list = aCell.Value  
aCell.Value = UCase(Mid(list, 1, 1)) & LCase(Mid(list, 2))  
 
End Sub
 
Private Sub Worksheet_Change(ByVal Target As Range)  
Application.EnableEvents = False  
Target = Left(UCase(Target), 1) & Right(LCase(Target), Len(Target) - 1)  
Application.EnableEvents = True  
End Sub
Bite my shiny metal ass!      
 
Отлично работает. Спасибо "Лузер"! А можете подсказать как сделать что бы он про верял только определенный диапазон ячеек например А1:X20 ???
 
Private Sub Worksheet_Change(ByVal Target As Range)  
If Intersect(Target, Range("A1:X20")) Is Nothing Or Target.Count > 1 Or Len(Target) = 0 Then Exit Sub  
Application.EnableEvents = False  
Target = Left(UCase(Target), 1) & Right(LCase(Target), Len(Target) - 1)  
Application.EnableEvents = True  
End Sub
Bite my shiny metal ass!      
 
Спасибо большое, то что надо!
Страницы: 1
Читают тему
Наверх