VB中17种可用一行代码完成的技巧

这据说是对逻辑运算不清楚造成的
If A=True Then
  C=Not B
Else
  C=B
End If
可以改成:
C=A XOR B

如果加上下列代码
If C=True then
  D=28
Else
  D=29
End If
可以改成:
D = IIf((A XOR B),28,29)

布尔赋值, 常被人忽略:
If A = 13 then
  B = True
Else
  B = False
End If
可以改成:
B = A = 13
或者改成(这个比较正常):
B = (A = 13)

字串有效性检测
If IsNull(StrOrg) or StrOrg="" then
可以改成:
If Len(StrOrg & "")<>0 then

字串重复次数计数
RepeatCount=Ubound(Split(StrOrg,StrFind))

如果计数同时要对字串有效性判断
RepeatCount=IIf((Len(StrOrg & "")=0), 0, Ubound(Split(StrOrg,StrFind))

有时需要判断字串数组中是否有这一元素, 这时最好不用数组, 而用分隔符字串
If Not Len(OrgStr)= Len(Replace(OrgStr,FindStr)) Then

对数组初始化(最好将IntArr定义为变体)
IntArr=Array(12&,28&,29&,30&,31&,52&,24&,60&)

判断大小
IntMax = Iif((IntA > IntB), IntA, IntB)
IntMin = Iif((IntA < IntB), IntA, IntB)

按索引的 Select Case
Function GetChoice(Ind As Integer)
  GetChoice = Choose(Ind, "Speedy", "United", "Federal")
End Function

按表达式的 Select Case(这种转换要求不能有Case Else的才可以这样, 否则会出错)
Function MatchUp (CityName As String)
  Matchup = Switch(CityName = "London", "English", CityName = "Rome", "Italian", CityName = "Paris", "French")
End Function[code]
[b]使用IIf, 前面已有[/b][code]Function CheckIt (TestMe As Integer)
  CheckIt = IIf(TestMe > 1000, "Large", "Small")
End Function

字串动态数组是否已初始化
If Not Len(Join(StrArr))=0 Then

如果有下列代码
Select Case CombBox.text
  Case "London"
    Call FuncStrLang(3)
  Case "Rome"
    Call FuncStrLang(5)
  ...
End Select
则可以用ItemData属性. 即 "London" 的 Itemdata=3; "Rome" 的 Itemdata=5...
Call FuncStrLang(CombBox.ItenData)

如果有下列代码
Select Case CombBox.text
  Case "London"
    Call ClsCity.CityIntr_London
  Case "Rome"
    Call ClsCity.CityIntr_Rome
  ...
End Select
可以改成:
CallByName ClsCity, "CityIntr_" & CombBox.text, vbMethod

复制数组到另一变量中(即主变体直接取数组指针, 则所有元素都复制了过去)
Dim iOrgArr(30) as Integer
Dim iDesArr as Variant
...
iDesArr = iOrgArr

如果有下列代码
Do While Not RsAdo.Eof
  If len(DesStr)<>0 then
    DesStr=DesStr & VbTab
  End if
  DesStr=RsAdo!Rec_id
  RsAdo.MoveNext
Loop
可以改成:
DesStr=RsAdo.GetString()



[本日志由 JiaJia 于 2007-12-14 11:19 AM 编辑]
文章来自: 未知
引用通告: 查看所有引用 | 我要引用此文章
Tags: VB
评论: 0 | 引用: 0 | 查看次数: -
发表评论
昵 称:
密 码: 游客发言不需要密码.
内 容:
验证码: 验证码
选 项:
虽然发表评论不用注册,但是为了保护您的发言权,建议您注册帐号.