VBA中变量赋值的条件运算符

时间:2018-04-05 19:21:20

标签: c# excel vba

在C#中,您可以为变量赋值并同时进行比较,如下所示:

int input = Convert.ToInt32(Console.ReadLine());  
string classify;

// ?: conditional operator.
classify = (input > 0) ? "positive" : "negative";

"分类"现在有"积极"或者"否定"取决于提供的输入

在VBA中是否有相同的功能?我知道我可以做一个If语句来比较它并分配值,我试着看看它是否可以简化为一行。

1 个答案:

答案 0 :(得分:4)

有IIF()函数:

Dim inpt As Double
inpt = Application.InputBox("give me a number", Type:=1)

Dim classify As String
classify = IIf(inpt > 0, "Positive", "Negative")
MsgBox classify

使用IIF函数要记住一件事,它将解析函数的所有部分。因此,即使测试返回true,它也会尝试处理false和true,但只返回true。

这意味着,如果其中一个返回导致错误,无论是否是要返回的值,它都会出错。