1、下列代码,则是对逻辑运算不清楚造成
IfA=trueThen
C=NotB
Else
C=B
If
可以:
C=AXORB
2、如果加上下列代码:
IfC=truethen
D=28
Else
D=29
IF
D=Iif((AXORB),28,29)
3、布尔赋值,常被人忽略,如:
IfA=13then
B=True
Else
B=False
If
可以:
B=A=13
或者:
B=(A=13)
我更喜欢用后者,这样代码易于看懂。
4、字串有效性检测:
IfIsNull(StrOrg)orStrOrg=””then
可以:
IfLen(StrOrg“”)0then
5、字串重复次数
RepeatCount=Ubound(Split(StrOrg,StrFind))
同样,如果要对字串有效性判断:
RepeatCount=Iif((Len(StrOrg“”)=0),0,Ubound(Split(StrOrg,StrFind))
6、有时需要判断字串数组中是否有这一元素,这时最好不用数组,而用分隔符字串,于是:
IfLen(OrgStr)=Len(Replace(OrgStr,FindStr))then
则表明,此元素不存在。
7、对数组初始化,最好用变体,这样,也是一行语句,如:
IntArr=Array(12,28,29,30,31,52,24,60)
注意,此时需要用变量后缀。上面代码,如要定义为长整型,则
IntArr=Array(12,28,29,30,31,52,24,60)
要将IntArr定义为变体
8、判断大小:
IntMax=Iif((IntAIntB),IntA,IntB)
IntMin=Iif((IntAIntB),IntA,IntB)9、按索引的SelectCaseFunctionGetChoice(IndAsInteger)GetChoice=Choose(Ind,"Speedy","United","Federal")Function10、按表达式的SelectCase(这种转换要求不能有CaseElse的才可以这样,否则会出错)FunctionMatchUp(CityNameAsString)Matchup=tch(CityName="London","English",CityName_="Rome","Italian",CityName="Paris","French")Function11、使用Iif,前面已有FunctionCheckIt(TestMeAsInteger)CheckIt=IIf(TestMe1000,“Large”,“Small”)
Function
12、字串动态数组是否已初始化
IfLen(Join(StrArr))=0then
字串动态数组未初始化。
13、指定只读CombBox的当前值,如果能确认这个值就在其中,一定不会错,则:
Combbox=CurValue
注意,不可以写成:
=CurValue
前者实际是写_default这个属性,而后者则是写Text因为只读,则会导致错误
14、如果有下列代码:

Case“London”
CallFuncStrLang(3)
Case“Rome”
CallFuncStrLang(5)
……
Select
则可以用ItemData属性,即:
“London”的Itemdata=3
“Rome”的Itemdata=5
于是:
CallFuncStrLang()
15、如果有下列代码:

Case“London”
_London
Case“Rome”
_Rome
……
Select
只要:
CallByNameClsCity,“CityIntr_”,vbMethod
16、复制数组到另一变量中:
DimiOrgArr(30)asInteger
DimiDesArrasVariant
……
iDesArr=iOrgArr
即主变体直接取数组指针,则所有元素都复制了过去。
17、如果有下列代码:

Iflen(DesStr)0then
DesStr=DesStrVbTab
if
DesStr=RsAdo!Rec_id

loop