我的宏中有一个输入框,它处于循环中。数字toArray()
对应于程序将执行的特定任务,1-4
将保存并退出程序。
现在,除非用户输入5
,否则输入框将处于连续循环中。但是,如果用户点击输入框右上角的5
或Cancel
按钮,我也希望循环和子结束。当我点击X
或Cancel
时,它会给我一个错误。
总之,是否可以对输入框的X
和Cancel
键进行编码以结束循环并退出sub而不显示错误消息?例如,如果用户键入X
:
6
有什么东西可以让我这么做:
If ipAnswer = 6 then
ActiveWorkbook.Save
Exit Sub
End If
答案 0 :(得分:0)
使用InputBox()
返回字符串时,可以检测到所有三种可能的结果。这三个结果是:
[OK]
而未输入值[Cancel]
或[X]
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