带有VBA中另一个选项的输入框

时间:2014-08-31 08:13:58

标签: excel vba excel-vba input

我有一个简单的inputBox来输入员工的ID:

    id = InputBox("Enter ID NUMBER of the employee")
    If id = "" Or Not IsNumeric(id) Then
        MsgBox "No ID entered"
        Call prepareToExit
        Exit Sub
    End If

到目前为止,这对我来说已经足够了,但现在我需要能够在对话框中输入另一个参数,该参数将表示用户是使用程序的默认设置还是想要进入另一个菜单来选择选项(对于示例将默认文件夹更改为用户已定义)。

有人可以解释如何在输入框中添加此单个选项。 我知道用InputBox方法无法完成。

我需要的是另一个按钮,例如“高级...”,以了解用户是否想要进行其他设置。

谢谢!

1 个答案:

答案 0 :(得分:0)

有三种选择: 1.使用量身定制的用户形式
2.添加另一个msgbox以询问额外选项(是/否)
3.在输入的字符串中包含该选项。这在这里相当简单,但对于这些事情,正则表达式可能非常有用。如果对某些用户来说这似乎过于“隐秘”,那么这取决于您的目标受众。

一个例子:

Dim rx, rxM
Dim ID As String
Dim IDvalue As Long
Dim optionFlag As Boolean

Set rx = CreateObject("vbscript.regexp")
rx.Pattern = "^(\d+)(\+)?$"

ID = InputBox("Enter ID NUMBER of the employee" & vbCrLf & _
"Add '+' for advanced options, e. g. 100345+")

If Not rx.test(ID) Then
'If ID = "" Or Not IsNumeric(ID) Then
    MsgBox "No ID entered"
    Call prepareToExit
    Exit Sub
Else
    Set rxM = rx.Execute(ID)
    IDvalue = CLng(rxM(0).submatches(0))
    optionFlag = (rxM(0).submatches(1) = "+")
    MsgBox IDvalue & vbCrLf & optionFlag
End If