VBA 是空函数

VBA isnull function

在 VBA 中,是否有任何函数的工作方式类似于 SQL 中的 isnull?

A1 是空白单元格, B1 = Apple, C1 = Orange.

例如:

我) D1 = isnull (A1,B1) 目标结果:D1 = Apple

ii)D1= isnull (B1,C1) 目标结果:D1 = Apple

在VBA中你可以使用IsEmpty()函数:

Range("D1").Value = IIf(IsEmpty(Range("A1")), Range("B1").Value, Range("A1").Value)

所以你可以构建一个像

这样的UDF
Function MyIsNull(rng1 As Range, rng2 As Range) As Variant
    MyIsNull = IIf(IsEmpty(rng1), rng2.Value, rng1.Value)
End Function

并在您的单元格中调用它,例如:

i) =MyIsNull(A1,B1)

ii) =MyIsNull(B1,C1)

注意:我使用 "MyIsNull" 作为 UDF 名称,因为 IsNull 是一个已经存在的 VBA 函数的名称,你应该在 "IsNull" 之后命名你的 UDF 那么它会隐藏它


而如果您想使用 excel 内置函数,您可以使用 ISBLANK() 并在您的单元格中输入:

i) =IF(ISBLANK(A1),B1,A1) ii) =IF(ISBLANK(B1),C1,B1)