VBA-条件逻辑
1、VBA中常用的条件语句是If...Then...Else...语句。这条语句的语法如下:
If condition Then
[statements]
[ElseIf condition-n Then
[elseifstatements]
...
[Else
[elsestatements]]
End If
condition是输入要检测的条件。如果条件检测的结果是True,将执行在Then之后的语句。
如果希望检测第二个条件,可以向If语句中添加一条或者多条ElseIf从句。
VBA首先检测If后的条件,如果检测的结果是False,VBA将检测ElseIf从句后的条件,并重复检测,直至某个条件检测的结果为True。如果所有条件检测的结果都是False,VBA将执行End If语句,除非具有Else从句。如果If语句中所有条件检测的结果都是False,那么将执行
可选的Else从句后的语句。
2、1)在excel中新建工作表,对应位置填写如下内容,其中B6输入公式“=B3*B4”。
2)在VB编辑器中建立名为Shipping的过程,将下面的代码复制到过程中。在工作表中插入按钮,链接新建的过程Shipping,将按钮名称更改为Shipping。
Dim iResponse As Integer
iResponse=MsgBox("Doesthissaleneedtobeshipped?",vbYesNo)
If iResponse=vbYes Then
Range(“B4”).Value=10
Else
Range("B4").Value=0
End If
3)点击按钮,提示是否需要发运,如果需要发运,B4中会自动填入运费,B6中会自动计算出合计运费。
3、当可需要对某一参数进行多范围判断,使用Select case语句,在多重选择的情况下,Select Case更易于阅读。SelectCase语句的语法如下:
Select Case testexpression
[Case expressionlist-n
[statements-n]]..
.
[Case Else
[elsestatements]]
End Select
Select case后面的语句是待检验语句,从上到下与case后面的表达式比较,如果满足条件则执行case下面的语句。Case后面的语句当用逗号将两个数值分开时,隐含实现了“Or”选择。
4、下面是一个根据发运地点确定运费的例子:
'Select Case to determine shipping cost.
1.Select Case State
2.Case "NewYork"
3.cShipping=5.00
4.Case "Georgia","SouthCarolina","Ohio"
5.cShipping=4.00
6.Case “Florida”,“Texas”
7.cShipping=3.00
8.Case "Alabama","Washington","California","Illinois"
9.cShipping=2.00
10.Case Else
11.cShipping=1.00
12.EndSelect
要使用比较运算符,需要使用Is或者To关键字。Is关键字用来将希望进行比较的检测表达式和Is关键字后列出的表达式进行比较。而To关键字定义一个范围内的数值,如“case 69 to 80“。
5、可以利用条件逻辑调用excel内置对话框,在VB编辑器中输入如下代码:
Public Sub savenow()
Dim iResponse As Integer
iResponse=MsgBox("Do you wish to save your work?",vbYesNo)
If iResponse=vbYesThen
Application.Dialogs(xlDialogSaveAs).Show
End If
End Sub
在excel工作表中增加按钮,链接宏“savenow”,点击按钮会提示另存为对话框,如果想显示其他内置对话框,可以将xlDialogSaveAs替换为替他参数,相关参数可以在excel帮助中输入“XlBuiltInDialog“查看。