原文请参见:http://club.excelhome.net/thread-873348-1-1.html
我这里只是做个转载
常规情况下无法区分用户是点击了取消按钮还是用户未作任何输入直接点击了确定按钮---因为这两种情况下它都会返回一个空字符串。
其实这里可以用 StrPtr 函数来判断,StrPtr在VBA帮助里查找不到,应该算一个隐藏的函数,它主要用来返回真正的UNICODE字符串缓冲区的地址,他还有另外一个作用,就是:
能直观地告诉你空字符串和null字符串的不同。对于null字符串(vbNullString),StrPtr的返回值为0,而对于空字符串,函数的返回值为非零。
如以下代码,就能够判断出用户是点击了取消按钮还是用户未作任何输入直接点击了确定按钮
Sub Test()
Dim xStr As String
xStr = InputBox("InputBox 测试", "Mars Wang")
If StrPtr(xStr) <> 0 Then
MsgBox "用户点击了""确定""按钮!!!!!"
Else
MsgBox "用户点击了""取消""按钮或者直接关闭了对话框!!!!!"
End If
End Sub