IsNull(myStr) 和 myStr Is Null 有没有区别?? If IsNull(strRange) Then这个和 If strRange Is NULL Then有区别吗?为何好像我用IsNull不行的?? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 IsNull函数指出表达式是否不包含任何有效数据任何包含NULL的表达式的值是NULL,永远不可能是True而is运算符用来比较两个对象的引用变量 If strRange Is NULL ThenstrRange Is NULL的值是NULL,永远不可能是True,永远不会执行Then后面的语句 strRange是个字符串吧,字符串不可能是Null的 值为Null的Variant变量自动转换为字符串时,转为""(空字符串) 嗯,对,是一个字符串。但是我这个串是由其他操作引发的,就是可能这个串什么都没有读到。比如这样(省略了其他部分,就关键的这段) For iLoop = 1 To 30 strRange = myRegistry.RegRead("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\Ranges\Range" & iLoop) If IsNull(strRange) Then myRegistry.RegWrite "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\Ranges\Range" & iLoop & "\*", 2, "REG_DWORD" myRegistry.RegWrite "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\Ranges\Range" & iLoop & "\:Range", CStr(strTrustedSite), "REG_SZ" Exit For End If Next就是说我去读注册表键值,当键值存在的话,我就往下循环(这样不至于覆盖了),当判断到键值不存在,那么就可以写入这个键值。于是我希望判断这个读键值后的结果,是发现不存在就是null咯,所以就开始写注册表了。不知道意思说明白了没?希望大侠指点!感激涕零~~ If strRange="" Then不行吗? 可以看看注册表中的HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\Ranges\Range1这个地方,大侠一定明白我的意思,我希望就是做到可以添加一个 “Range*”的键值,假如已经有了Range1和Range2,我就加Range3,假如都没有,就加Range1………………依此类推 If strRange="" Then不行的,因为如果这个键值不存在,那么它不会是空值,实际上会引发异常。为了做到能够真正执行我for循环中的代码,实际上我是强制性的加进了 on error resume next来循环,否则根本run不下去的 用Variant可以吗?dim strRange as String改为dim varRange 不行,呵呵,晕~~因为其实我用的是VBScript而不是VB,不可以指定类型的。 "强制性的加进了 on error resume next来循环"那么,strRange = myRegistry.RegRead这一句实际上没有执行是吗?那你在前面加一句strRange = ""就可以了,如果取到值了,就不再是"",下面就可以If strRange="" Then判断了吧 嗯,谢谢了,后来我借鉴你的思路,用on error goto 0on error resume nextif err.number <> 0 then来实现,已经弄好了。 假设有两个或以上客户端连上了服务端,服务端如何记录下来,并可以向其中任意一个客户发信息? tooltiptext的高手请进. 关于语音卡。 高分求教~~~~,解决数据库速度慢的问题~~,要是问题解决了,再散200分~~~~~ 客户机ODBC的设置 服务器上的数据库备份能备份到其他电脑吗 非常简单 再问,如何设置打印纸的尺寸? VB如何实现密码登陆! 文件处理问题 关于adodc帮定两个表的问题 使用TransparentBlt后,如何保存经过处理后的PICTURE呢!???急急急!谢谢各位帮忙!?
而is运算符用来比较两个对象的引用变量
strRange Is NULL的值是NULL,永远不可能是True,永远不会执行Then后面的语句
但是我这个串是由其他操作引发的,就是可能这个串什么都没有读到。比如这样(省略了其他部分,就关键的这段) For iLoop = 1 To 30
strRange = myRegistry.RegRead("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\Ranges\Range" & iLoop)
If IsNull(strRange) Then
myRegistry.RegWrite "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\Ranges\Range" & iLoop & "\*", 2, "REG_DWORD"
myRegistry.RegWrite "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\Ranges\Range" & iLoop & "\:Range", CStr(strTrustedSite), "REG_SZ"
Exit For
End If
Next
就是说我去读注册表键值,当键值存在的话,我就往下循环(这样不至于覆盖了),当判断到键值不存在,那么就可以写入这个键值。
于是我希望判断这个读键值后的结果,是发现不存在就是null咯,所以就开始写注册表了。不知道意思说明白了没?希望大侠指点!感激涕零~~
为了做到能够真正执行我for循环中的代码,实际上我是强制性的加进了 on error resume next来循环,否则根本run不下去的
dim strRange as String
改为
dim varRange
那么,strRange = myRegistry.RegRead这一句实际上没有执行是吗?
那你在前面加一句
strRange = ""就可以了,如果取到值了,就不再是"",下面就可以If strRange="" Then判断了吧
on error goto 0
on error resume next
if err.number <> 0 then
来实现,已经弄好了。