VBA输入框错误

时间:2015-08-19 01:47:56

标签: excel vba

我的宏中有一个输入框,它处于循环中。数字toArray()对应于程序将执行的特定任务,1-4将保存并退出程序。

现在,除非用户输入5,否则输入框将处于连续循环中。但是,如果用户点击输入框右上角的5Cancel按钮,我也希望循环和子结束。当我点击XCancel时,它会给我一个错误。

总之,是否可以对输入框的XCancel键进行编码以结束循环并退出sub而不显示错误消息?例如,如果用户键入X

,这就是我所拥有的
6

有什么东西可以让我这么做:

If ipAnswer = 6 then
    ActiveWorkbook.Save
    Exit Sub
End If

1 个答案:

答案 0 :(得分:0)

使用InputBox()返回字符串时,可以检测到所有三种可能的结果。这三个结果是:

  1. 用户输入了值
  2. 用户点击[OK]而未输入值
  3. 用户点击了[Cancel][X]
  4. StrPtr()函数是区分空字符串和不存在字符串的关键。以下代码演示了如何识别每个方案:

    Dim s As String
    s = InputBox("Enter something:")
    
    If StrPtr(s) = 0 Then
        Debug.Print "[Cancel] or [X] clicked"
    ElseIf Len(s) = 0 Then
        Debug.Print "[OK] clicked but nothing entered"
    Else
        Debug.Print "Something entered: " & s
    End If