小弟我使用以上代码时发生“13”异常不知为什么

我使用以下代码时发生“13”错误不知为什么?
我使用以下代码时发生“13”错误不知为什么?
调试时显示此处错误:If GetSetting("ok100fen", "ok100fen111", "ok100fen222") = 8 Then 
VB code


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