用户表单事件和调用私人子

我有用户forms的文本框。 文本框限制某些字符的input,或者允许input数字逗号和点。 代码在文本框的key_press事件中。 一切正常,只要下面的代码是在key_press事件。 当我input来自不同的子相同的代码call private sub小组它不起作用。

为什么它不起作用?

Key_press事件中的代码:

 Private Sub netto_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) Select Case KeyAscii Case Asc("0") To Asc("9") Case Asc("-") Case Else KeyAscii = 0 End Select End Sub 

Key_press事件中调用子代码:

 Private Sub netto_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) Call klawisze End Sub Private Sub klawisze() Select Case KeyAscii Case Asc("0") To Asc("9") Case Asc("-") Case Else KeyAscii = 0 End Select End Sub 

你靠近正确的解决scheme。 你只需要在你的klawisze子目录(它接受相应的参数: ByVal KeyAscii As MSForms.ReturnInteger )中传递参数KeyAscii

 Private Sub netto_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) Call klawisze(KeyAscii) End Sub Private Sub klawisze(ByVal KeyAscii As MSForms.ReturnInteger) Select Case KeyAscii Case Asc("0") To Asc("9") Case Asc("-") Case Else KeyAscii = 0 End Select End Sub