我正在使用VBA中的表单来处理我的单词文档。随着我的进步,我正在学习。我有一个组合框,您可以从列表中选择一个项目。基本上,如果选择“Homestretch”项目,我希望文档打印出4份副本,并且对于在组合框中选择或输入的所有其他内容,我希望打印3份。
当我选择Homestretch时,我完全打印出4份副本,但如果我选择其他任何内容则不会打印。另请注意,这是在命令按钮单击功能下,我只希望在执行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
答案 0 :(得分:2)
您的代码正在应用太多测试。您可以将其简化为以下内容:
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
答案 1 :(得分:0)
看起来应该是这样的
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如何工作
答案 2 :(得分:0)
对于只需要在分配两个值之一时决定的简单If ... Then
情况,IIf()函数可以使代码更简单:
If Me.ckbPrint Then ActiveDocument.PrintOut _
copies:=IIf(cbxCarrier.Value="Homestretch", 4, 3)
语法:IIf(test, if_test_true, if_test_false)