妙用StrPtr判断InputBox函数
时间:2009-02-18 15:48:39
作者:officeba 【认证】
请看下面的这一段代码:
首先OFFICEBA给大家看一段程序:
Private Sub good()
Dim strTemp As String
strTemp = Application.InputBox("test", "OFFICEBA温馨提示 - https://www.officeba.com.cn/", "False")
If StrPtr(strTemp) = 0 Then
MsgBox "取消"
Else
MsgBox "确定"
End If
End Sub
有看到StrPtr(strTemp)这个吧。这里的StrPtr是什么呢。StrPtr:返回真正的UNICODE字符串缓冲区的地址。也就是字符串变量在内存的地址!
StrPtr是唯一能直观地告诉你空字符串(点击确定时返回的值)和null字符串(点击取消时返回的值)的不同的方法。对于null字符串(vbNullString),StrPtr的返回值为0(因为变量中什么都没有),而对于空字符串,函数的返回值为非零(即字符串地址值)。
VBA中,我们还可以利用Application.InputBox来代替InputBox函数,但有了这个方法,你就可以区别上面的情况了!
在VBA程序中,InputBox函数用于输入字符串,提供了一个文本框和确定、取消两个按钮,如果按 “确定” 则返回文本框内的内容,按 “取消” 则返回一个长度为零的字符串 (""),但是如果文本框内没有内容,“确定”是返回(""),“取消”也是返回(""),那么怎样在VBA中区分呢?