Set 变量 = [A1]
If Not 变量 Is Nothing Then
MsgBox "存在"
End If
请问我这么写不对吗?要怎么样才能判断变量对象是否存在
你的写法光看现在的代码是正确的。追问
但是如果直接这样判断会出错,我刚刚在判断之前加了Set 变量 = Nothing先释放对象后再判断这样才不会出错,你觉得这样子如何
追答你的“变量"是Nothing吗?
用TypeName函数先测试下
变量为没有赋值之前属于Nothing
对了,其实我没有说清楚。
我的程序是没有先Set 变量 = [A1],因为我需要做判断才决定是否给这个变量赋值
而是直接判断,这样子才会出错,就是变量没有赋值的情况下判断变量是否存在
If Not 变量 Is Nothing Then
MsgBox "存在"
End If
至于TypeName函数这个我还没用过,不清楚什么意思
建议上传个模拟表,说明要求
追问其实总的来说就是只声明变量,而不赋值,这样的情况是否能判断变量
追答对象变量在使用Set语句赋值钱属于未初始化的变量,此时虽然也已经分配内存空间,但它还属于Nothing,表示没有内容
'可测试下面的语句
Sub test()
Dim rng As Range
MsgBox TypeName(rng)
Set rng = [A1]
MsgBox TypeName(rng)
End Sub
不错就是这个如果不声明直TypeName(rng)的话获得empty,也就是指没有变量吧,要的就是这效果,谢谢你了。
本回答被提问者采纳If 变量.value <> "" Then
MsgBox "存在"
End If追问
其实[A1]这个对象的值一直是空的,[A1]我是用来做偏移用的
追答看来您得把全部的模块过程发过来,否则不知道您要干什么。对象肯定是存在的,因为[a1]作为单元格肯定是有行坐标和列坐标。所以肯定不会是nothing。你要判断的应该是[A1]单元格内有无值。
追问不好意思,是我错了。
我的程序是没有先Set 变量 = [A1],因为我需要做判断才决定是否给这个变量赋值
而是直接判断,这样子才会出错,也就是变量没有赋值的情况下判断变量是否才在,这样理解才对
If Not 变量 Is Nothing Then
MsgBox "存在"
End If
好吧,虽然不理解你要干什么。
追问那变量没有赋值的情况下能不能判断是否存在
现在我是在判断前先set 变量=Nothing,然后再进行判断,可以解决出错问题,但是我还是想知道如果没有赋值的情况也没有set 变量=Nothing的情况下,可以直接判断变量是否存在吗
亲,变量都没有赋值那这个变量会有值么?变量肯定是存在的,因为你定义了变量那就肯定有啦。
追问那就是只能这样子解决了吗