If then Else Excel VBA - 需要“End If”吗?

LaH*_*LaH -1 excel vba if-statement udf

所以我正在 Excel vba 中编写这样的 UDF:

function ... if ... then ... else for i... to ... equations ... next i * end function

现在我注意到,该函数似乎工作得很好,但是我想知道我是否不应该在代码中的 (*) 位置使用“end if”?如果这样做,我会收到一条错误消息,指出没有与该“end if”块相对应的 IF!?所以一般来说, if then else 结构中不需要“end if”吗?提前致谢!

/edit: 'if ... then ... else' 是一句单行话。然而 else 块确实包含多行,特别是一个循环......

Mut*_*Lee 5

如果将 IF THEN ELSE 放在一行中,则 if 条件将在该行结束,无论如何都会执行下一行。

例如,

If true then x =1 else x = 2
y = 1
Run Code Online (Sandbox Code Playgroud)

这个案例

如果为 true,则 x 将为 1,y 将为 1

如果为 false,x 将为 2,y 将为 1


if true then
    x = 1
else
    x = 2
    y = 1
end if
Run Code Online (Sandbox Code Playgroud)

这个案例,

如果为 true,x 将为 1,y 为空

如果为 false,x 将为 2,y 将为 1


另外,如果你这样做

If true then x = 1 else 
x = 2
Run Code Online (Sandbox Code Playgroud)

无论真假,x 始终为 2