I have a worksheet that allows the user to place input to cell D4.
I need to have this value rounded to 1-decimal, so I have the following code on the Worksheet_Change event:
Formula:
Select Case Target.Column
Case 4
Select Case Target.Row
Case 4
If Target.Value > 0 Then
Application.EnableEvents = False
Target.Value = Round(Target.Value, 1)
Application.EnableEvents = True
End If
End Select
End Select
When I type 345.45, I would expect the cell value to change to 345.5, BUT it changes to 345.4 
When I type 345.55, I would expect the cell value to change to 345.6, it DOES change to 345.6 
If I use:
Formula:
Select Case Target.Column
Case 4
Select Case Target.Row
Case 4
If Target.Value > 0 Then
Application.EnableEvents = False
Target.Value = Application.WorksheetFunction.Round(Target.Value, 1)
Application.EnableEvents = True
End If
End Select
End Select
When I type 345.45, I would expect the cell value to change to 345.5, it DOES change to 345.5 
When I type 345.55, I would expect the cell value to change to 345.6, it DOES change to 345.6 
Why doesn't the first Round() function work as expected?
Bookmarks