VBAinput框错误

我有一个input框在我的macros在循环中。 数字1-4对应于程序将执行的特定任务,并且5将保存并退出程序。

现在,除非用户键入5否则input框处于连续循环状态。 不过,如果用户点击Cancel或input框右上angular的Xbutton,我也想循环和子结束。 当我点击CancelX ,它给了我一个错误。

总之,是否可以对input框的“ Cancel和“ X键进行编码以结束循环并退出子程序而不出现错误消息? 例如,这是我有,如果用户键入6

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

有什么可以让我做的:

 If 'cancel' or 'x' then ....... End If 

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

  1. 用户input了一个值
  2. 用户单击[OK]而不input值
  3. 用户点击[Cancel][X]

StrPtr()函数是区分空string和不存在string的关键。 以下代码演示如何识别每个scheme:

 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