我需要一个输入框来提供一个枚举值。微软根本没有提到验证字段。
有办法吗?就像 HTML5 中的pattern
ininput
标签一样?
这是我的相关代码片段。
Enum Scope
Cell = 1
Row = 2
Column = 3
End Enum
.... some other code ...
Used_Scope = Application.InputBox( _
Title:="higlight scope", _
Prompt:="Enter Row, Column, or Cell to decide what to higlight", _
Type:=2)
答案1
您需要使用 UserForm。我不认为 InputBox 具有您正在寻找的功能。
这是一个示例用户表单以及用于实现您的功能的代码。
Sub call_uform()
UserForm1.Show
Used_Scope = UserForm1.TextBox1.Text
Unload UserForm1
End Sub
Sub CommandButton1_Click()
Used_Scope = TextBox1.Value
Me.Hide
End Sub
Private Sub TextBox1_Change()
OnlyNumbers
End Sub
Private Sub OnlyNumbers()
If TypeName(Me.ActiveControl) = "TextBox" Then
With Me.ActiveControl
If Not IsNumeric(.Value) And .Value <> vbNullString Then
MsgBox "Sorry, only numbers allowed"
.Value = vbNullString
End If
End With
End If
End Sub
Private Sub UserForm_Click()
End Sub