Excel 尝试使用IIF作为三元运算符/不计算两边
我需要使用Excel 尝试使用IIF作为三元运算符/不计算两边,excel,vba,Excel,Vba,我需要使用iif() Range("A1").Value = IIf(IsNull(Range("A2").Value), MsgBox("1"), MsgBox("2")) 我真的很困惑:这行同时执行MsgBoxes。根据条件是否为真/假,我只需要执行其中一个 我尝试使用if条件,但它导致了一个错误:“编译错误:预期:表达式” 请帮忙。谢谢。声明无论输出结果如何,它都会执行True和False条件 您需要类似于以下内容的代码: Dim Result as Integer If IsNull(
iif()
Range("A1").Value = IIf(IsNull(Range("A2").Value), MsgBox("1"), MsgBox("2"))
我真的很困惑:这行同时执行MsgBox
es。根据条件是否为真/假,我只需要执行其中一个
我尝试使用if
条件,但它导致了一个错误:“编译错误:预期:表达式”
请帮忙。谢谢。声明无论输出结果如何,它都会执行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
或者,如果您正在寻找单班轮:
Range("A1").Value = MsgBox(IIf(IsNull(Range("A2").Value), "1", "2"))
尽管这不允许您像更改块一样轻松地更改其他MsgBox
参数。如果IIf
的VBA文档出错。在VBA中调用的每个函数都需要先计算其参数,然后函数才能将其结果作为参数值接收<代码>IIf
在这里不是罪魁祸首,这是基本的语言机制。另外,该链接用于MS AccessIIf
函数,除非我弄错了,否则它是Access SQL的一部分,而不是VBA。