use*_*854 2 excel vba excel-vba
我需要使用iif()我的检查和分配值的情况,如:
Range("A1").Value = IIf(IsNull(Range("A2").Value), MsgBox("1"), MsgBox("2"))
Run Code Online (Sandbox Code Playgroud)
我真的很困惑:这条线正在执行两个MsgBoxes.我需要只执行其中一个,具体取决于条件是真还是假.
我尝试使用if条件,但它会导致错误:"编译错误:预期:表达式"
请帮忙.谢谢.
IIf的VBA文档声明无论输出如何,它都会执行True和False条件.
您需要类似以下的代码:
Dim Result as Integer
If IsNull(Range("A2").Value) Then
Result = MsgBox("1")
Else
Result = MsgBox("2")
End If
Range("A1").Value = Result
Run Code Online (Sandbox Code Playgroud)
或者,如果您正在寻找一个班轮:
Range("A1").Value = MsgBox(IIf(IsNull(Range("A2").Value), "1", "2"))
Run Code Online (Sandbox Code Playgroud)
虽然这不允许您MsgBox像阻止块一样容易地更改其他参数.