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)
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)
所以你可以构建一个像
这样的UDFFunction 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)