VBA 中的 If 和 ElseIf 语句
If and ElseIf Statement in VBA
我正在为我的 word 文档制作 VBA 中的表格。我一边学习一边学习。我有一个组合框,您可以在其中 select 列表中的项目。基本上,如果项目 "Homestretch" 是 selected,我希望文档打印出 4 份,其他所有 selected 或输入到组合框中的内容打印出 3 份。
当我 select Homestretch 时,我可以完美地打印 4 份副本,但如果我 select 其他任何东西,它都不会打印。另请注意,这是在命令按钮单击功能下,我只希望在选中 ckbPrint 复选框时执行。这是下面的代码。谢谢
If Me.ckbPrint.Value = True Then
If cbxCarrier.Value = "Homestretch" Then
ActiveDocument.PrintOut copies:=4
ElseIf cbxCarrier.Value <> "Homestretch" Then
ElseIf Me.ckbPrint.Value = True Then
ActiveDocument.PrintOut copies:=3
End If
End If
它应该是这样的
If Me.ckbPrint.Value = True Then
If cbxCarrier.Value = "Homestretch" Then
ActiveDocument.PrintOut copies:=4
ElseIf cbxCarrier.Value <> "Homestretch" Then
'put your inner else statement here. If none, then remove it
End If
ElseIf Me.ckbPrint.Value = False Then 'this else is connected with first if
ActiveDocument.PrintOut copies:=3
End If
如果不是您想要的,只需更改语句即可,但 if 和 elseif 如何工作
您的代码应用了太多测试。您可以将其简化为以下内容:
Dim copies As Long
If Me.ckbPrint Then
If cbxCarrier.Value = "Homestretch" Then
copies = 4
Else
copies = 3
End If
ActiveDocument.PrintOut copies:=copies
End If
对于您只需要在分配两个值之一之间做出决定的简单 If ... Then
情况,IIf() 函数可以使您的代码更简单:
If Me.ckbPrint Then ActiveDocument.PrintOut _
copies:=IIf(cbxCarrier.Value="Homestretch", 4, 3)
语法:IIf(test, if_test_true, if_test_false)
我正在为我的 word 文档制作 VBA 中的表格。我一边学习一边学习。我有一个组合框,您可以在其中 select 列表中的项目。基本上,如果项目 "Homestretch" 是 selected,我希望文档打印出 4 份,其他所有 selected 或输入到组合框中的内容打印出 3 份。
当我 select Homestretch 时,我可以完美地打印 4 份副本,但如果我 select 其他任何东西,它都不会打印。另请注意,这是在命令按钮单击功能下,我只希望在选中 ckbPrint 复选框时执行。这是下面的代码。谢谢
If Me.ckbPrint.Value = True Then
If cbxCarrier.Value = "Homestretch" Then
ActiveDocument.PrintOut copies:=4
ElseIf cbxCarrier.Value <> "Homestretch" Then
ElseIf Me.ckbPrint.Value = True Then
ActiveDocument.PrintOut copies:=3
End If
End If
它应该是这样的
If Me.ckbPrint.Value = True Then
If cbxCarrier.Value = "Homestretch" Then
ActiveDocument.PrintOut copies:=4
ElseIf cbxCarrier.Value <> "Homestretch" Then
'put your inner else statement here. If none, then remove it
End If
ElseIf Me.ckbPrint.Value = False Then 'this else is connected with first if
ActiveDocument.PrintOut copies:=3
End If
如果不是您想要的,只需更改语句即可,但 if 和 elseif 如何工作
您的代码应用了太多测试。您可以将其简化为以下内容:
Dim copies As Long
If Me.ckbPrint Then
If cbxCarrier.Value = "Homestretch" Then
copies = 4
Else
copies = 3
End If
ActiveDocument.PrintOut copies:=copies
End If
对于您只需要在分配两个值之一之间做出决定的简单 If ... Then
情况,IIf() 函数可以使您的代码更简单:
If Me.ckbPrint Then ActiveDocument.PrintOut _
copies:=IIf(cbxCarrier.Value="Homestretch", 4, 3)
语法:IIf(test, if_test_true, if_test_false)