VBA-条件逻辑

2025-10-22 02:56:38

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中会自动计算出合计运费。

VBA-条件逻辑

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“查看。

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢