标签:VBA,类模块
下面的类模块只允许在用户窗体文本框中输入中文。
在VBE中插入一个类模块,将其重命名为“CTextbox”,输入代码:
代码语言:javascript复制Public WithEvents TBox As MSForms.TextBox
Private Sub Tbox_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
KeyAscii = CheckInput(KeyAscii)
End Sub
Public Function CheckInput(ByVal KeyAscii As MSForms.ReturnInteger)
CheckInput = IIf((KeyAscii < 48) And (KeyAscii > 57), vbKeyClear, 0)
End Function
然后插入一个用户窗体进行测试。
在VBE中,插入一个用户窗体,在其中绘制几个文本框。打开用户窗体代码模块,输入代码:
代码语言:javascript复制Private Sub UserForm_Initialize()
Dim ctl As MSForms.Control
Dim idx As Long
For Each ctl In Me.Controls
If TypeOf ctl Is MSForms.TextBox Then
ReDim Preserve TextBoxes(idx)
Set TextBoxes(idx).TBox = ctl
idx = idx 1
End If
Next ctl
End Sub
运行用户窗体,然后尝试着在其中的文本框中输入内容,你会发现,只能输入中文,而无法输入字母、数字和符号。
在一些情形下,这样的限制还是很有用的,你可以试试,并且尝试限制或允许输入其他内容来扩展这个类模块。