Private Sub TextBox17_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
FilterKeyUp KeyAscii
End Sub
Public Sub FilterKeyUp(myKeyAscii As MSForms.ReturnInteger)
Select Case myKeyAscii
Case 44, 46, 48 To 57
Case Else: SendKeys "{bs}"
End Select
End Sub
Условие срабатывает всегда (код ниже), почему?
Код:
Private Sub TextBox17_KeyPress(ByVal keyAscii As MSForms.ReturnInteger)
Call keyup(keyAscii)
End Sub
Public Sub keyup(keyAscii)
Dim cifra As Integer
cifra = keyAscii
If (cifra <> 48) Or (cifra <>49) Or (cifra <> 50) Or (cifra <> 51) Or (cifra <> 52) _
Or (cifra <> 53) Or (cifra <> 54) Or (cifra <> 55) Or (cifra <> 56) _
Or (cifra <> 57) Or (cifra <> 44) Or (cifra <> 46) Then SendKeys "{bs}"
End Sub
Call keyup(keyAscii)
End Sub
Public Sub keyup(keyAscii)
Dim cifra As Integer
cifra = keyAscii
If (cifra <> 48) Or (cifra <>49) Or (cifra <> 50) Or (cifra <> 51) Or (cifra <> 52) _
Or (cifra <> 53) Or (cifra <> 54) Or (cifra <> 55) Or (cifra <> 56) _
Or (cifra <> 57) Or (cifra <> 44) Or (cifra <> 46) Then SendKeys "{bs}"
End Sub
если true or false = true. а у вас 1 хоть раp true будет. например cifra = 53 - условие (cifra <>49) = true
Код:
Цитата: pashulka
В таких случаях вполне можно использовать Select Case ... т.е.
Код:
Спасибо за подсказку, совсем про него забыл.