我使用以下代码时发生“13”错误不知为什么?本帖最后由 bcrun 于 2012-09-19 10:47:01 编辑我使用以下代码时
我使用以下代码时发生“13”错误不知为什么?
本帖最后由 bcrun 于 2012-09-19 10:47:01 编辑 我使用以下代码时发生“13”错误不知为什么?
调试时显示此处错误:If GetSetting("ok100fen", "ok100fen111", "ok100fen222") = 8 Then
Private Sub Form_Load()
Dim t As Date
Dim yy
Dim mm
Dim dd
Dim tt
t = CDate(Date)
If DateDiff("d", t, "2009-09-20") <= 0 Then
MsgBox "对不起,该软件到期,您只能用到2009-09-20日", , "过期"
SaveSetting "ok100fen", "ok100fen111", "ok100fen222", 8
'Open "c:\windows\system32\win32.dll" For Output As #1
'Close #1
Unload Me
End If
If DateDiff("d", t, "2009-09-20") > 0 Then
If GetSetting("ok100fen", "ok100fen111", "ok100fen222") = 8 Then
MsgBox "哈哈!您修改时间也没有用,去找ok100fen才行", , "过期"
Unload Me
End If
End If
End Sub
[解决办法]GetSetting 函数
从 Windows 注册表中的应用程序项目返回注册表项设置值。
语法
GetSetting(appname, section, key[, default])
GetSetting 函数的语法具有下列命名参数:
部分 描述
appname 必要。字符串表达式,包含应用程序或工程的名称,要求这些应用程序或工程有注册表项设置。
section 必要。字符串表达式,包含区域名称,要求该区域有注册表项设置。
key 必要。字符串表达式,返回注册表项设置的名称。
default 可选。表达式,如果注册表项设置中没有设置值,则返回缺省值。如果省略,则 default 取值为长度为零的字符串 ("")。
说明
如果 GetSetting 的参数中的任何一项都不存在,则 GetSetting 返回 default 的值。
[解决办法]13是什么?13是类型不匹配.
GetSetting返回的值是字符串,如果这个字符串是数字,或可以转换为数值的内容,那么你的等式成立.
如果返回的是不能转换为数值的内容,你却让这个内容与一个数值相比较,那为什么不出错呢?
先在立即窗口里输出一下GetSetting("ok100fen", "ok100fen111", "ok100fen222")的值,看看是什么个情况再说.
如果是空值,那肯定是会出错的,加一个默认值为数值的值吧,比如:
If GetSetting("ok100fen", "ok100fen111", "ok100fen222","0") = 8 Then