有用的VBA类模块:限制用户窗体文本框只能输入中文

2023-09-15 08:11:56 浏览数 (3)

标签: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

运行用户窗体,然后尝试着在其中的文本框中输入内容,你会发现,只能输入中文,而无法输入字母、数字和符号。

在一些情形下,这样的限制还是很有用的,你可以试试,并且尝试限制或允许输入其他内容来扩展这个类模块。

0 人点赞