Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column <> 4 Then Exit Sub If Target.Count > 1 Then Exit Sub Application.EnableEvents = False Target.Value = Replace(Target.Value, ",", ".") Application.EnableEvents = True End Sub
[/vba]
Добрый день. В модуль листа [vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column <> 4 Then Exit Sub If Target.Count > 1 Then Exit Sub Application.EnableEvents = False Target.Value = Replace(Target.Value, ",", ".") Application.EnableEvents = True End Sub
Private Sub Worksheet_Change(ByVal Target As Range) Set MyRange = Intersect(Target, Range("d:d")) If Not MyRange Is Nothing Then Application.EnableEvents = False For Each Mycell In MyRange Mycell.Value = Replace(Mycell.Value, ",", ".") Next Mycell Application.EnableEvents = True End If End Sub
[/vba]
SBoy, при всем уваженнии, зациклили по событию :-)
поместить в функцию листа [vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range) Set MyRange = Intersect(Target, Range("d:d")) If Not MyRange Is Nothing Then Application.EnableEvents = False For Each Mycell In MyRange Mycell.Value = Replace(Mycell.Value, ",", ".") Next Mycell Application.EnableEvents = True End If End Sub
[/vba]
SBoy, при всем уваженнии, зациклили по событию :-)bmv98rus
Замечательный Временно просто медведь , процентов на 20.
Сообщение отредактировал bmv98rus - Вторник, 26.12.2017, 12:58
Что делать, если в функции листа у меня уже есть вот это: [vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range) Dim d0_ As Range, d_ As Range Set d0_ = Intersect(Target, Range("F:F,R:R")) If d0_ Is Nothing Then Exit Sub Application.ScreenUpdating = 0 Application.EnableEvents = 0 For Each d_ In d0_ If d_.Row > 3 Then If d_ <> "" Then d_ = UCase(d_) End If End If Next d_ Application.EnableEvents = 1 Application.ScreenUpdating = 1 End Sub
[/vba]
Что делать, если в функции листа у меня уже есть вот это: [vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range) Dim d0_ As Range, d_ As Range Set d0_ = Intersect(Target, Range("F:F,R:R")) If d0_ Is Nothing Then Exit Sub Application.ScreenUpdating = 0 Application.EnableEvents = 0 For Each d_ In d0_ If d_.Row > 3 Then If d_ <> "" Then d_ = UCase(d_) End If End If Next d_ Application.EnableEvents = 1 Application.ScreenUpdating = 1 End Sub
Private Sub Worksheet_Change(ByVal Target As Range) Dim d0_ As Range, d_ As Range Application.ScreenUpdating = 0 Application.EnableEvents = 0 Set d0_ = Intersect(Target, Range("F:F,R:R")) If not d0_ Is Nothing Then For Each d_ In d0_ If d_.Row > 3 Then If d_ <> "" Then d_ = UCase(d_) End If End If Next d_
else
Set d0_= Intersect(Target, Range("d:d")) If Not d0_ Is Nothing Then For Each d_ In d0_ d_.Value = Replace(d_.Value, ",", ".") Next d_ End If end if Application.EnableEvents = 1 Application.ScreenUpdating = 1
Private Sub Worksheet_Change(ByVal Target As Range) Dim d0_ As Range, d_ As Range Application.ScreenUpdating = 0 Application.EnableEvents = 0 Set d0_ = Intersect(Target, Range("F:F,R:R")) If not d0_ Is Nothing Then For Each d_ In d0_ If d_.Row > 3 Then If d_ <> "" Then d_ = UCase(d_) End If End If Next d_
else
Set d0_= Intersect(Target, Range("d:d")) If Not d0_ Is Nothing Then For Each d_ In d0_ d_.Value = Replace(d_.Value, ",", ".") Next d_ End If end if Application.EnableEvents = 1 Application.ScreenUpdating = 1