我要比较最近登录的账号与前一个账号是否相同,分别用两个变量来表示,明明两个变量的值是一样的,怎么系统就是判断为不一样呢?
public AccountCode '记录已经登录的账号
Sub GetAccountCode()
dim sAccount '记录可能更换了的账号
sAccount=cstr(Trim(ORDER.ACCOUNT(1)))
If sAccountID=AccountCode Then '就是这句,当两个变量是相同的值的时候,这里总是返回false
Exit Sub
Else
AccountCode=sAccount
GetOrder
End if
End Sub
这就是我的代码
sAccount=cstr(Trim(ORDER.ACCOUNT(1)))
If sAccountID=AccountCode Then
sAccountID------变量名是什么?或是 sAccountID=AccountCode 类型不对
都是字符型,VBS中定义变量并不指定类型呀,order.Account(1)返回的是字符变量,sAccountID也是字符变量。
解决了,原来是我自己写多了个ID,定义的变量与比较用的变量名不一样,金字塔也不检查这些未定义的变量,应该象Access一样可以设置变量必须定义才行。
这不是金字塔的问题,楼主应该好好学学VBS的语法
Option Explicit 语句 语言参考
--------------------------------------------------------------------------------
描述
用于 Script 级强制要求显式声明该 Script 中的所有变量。
语法
Option Explicit
说明
如果使用 Option Explicit,该语句必须出现在 Script 的任何过程之前。
使用 Option Explicit 语句时,必须使用 Dim、Private、Public 或 ReDim 语句显式声明所有变量。如果试图使用未经声明的变量名,则会出现错误。
--------------------------------------------------------------------------------
提示 可用 Option Explicit 避免拼错已存在的变量名称。对于作用范围不清楚的变量,使用此语句可避免发生混淆。