Ребят всем привет, облазил форум, нашел нужную тему и макрос для решения проблемы, но почему то после преобразования строчных букв в прописные, макрос ломается и иногда сам эксель крашится. В общем нужно, чтобы в диапазоне A2:A3000, вносимый текст преобразовывался в прописной
Макрос который использовал
Код
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Cells.Count > 1 Then Exit Sub
If Not Intersect(Target, Range("$A$2:$A$3000")) Is Nothing Then
Target.Value = UCase(Target.Value)
End If
End Sub
он не крашится, а выполняется до потери пульса, так как вы изменением вызываете его же. Перед изменением отключите события Aplication.enableEvents=false, а потом включите обратно.
Уппс Тема : как избавится от нежелательного бесконечного рекурсивного вызова Worksheet_Change
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Cells.Count > 1 Then Exit Sub
If Not Intersect(Target, Range("$A$2:$A$3000")) Is Nothing Then
Application.EnableEvents = False
Target.Value = UCase(Target.Value)
End If
Application.EnableEvents = True
End Sub
Юрий М написал: Добавьте отключение/включение отслеживания событий:Код ? 12345678Private Sub Worksheet_Change(ByVal Target As Range) If Target.Cells.Count > 1 Then Exit Sub If Not Intersect(Target, Range("$A$2:$A$3000")) Is Nothing Then Application.EnableEvents = False Target.Value = UCase(Target.Value) End If Application.EnableEvents = TrueEnd Sub
Заработало!!!))) Огромное спасибо! =) тебе +100 к карме