如何检查Variant是否为空,并在Excel VBA中为其分配其他variables

我试图做一个有3个input的函数,其中两个是可选的: colOffsetAcolOffsetB 。 如果在函数中只使用两个可选参数之一,那么我希望这个值也自动分配给空的参数。 现在代码由于某种原因为colOffsetB分配值0。

 Function TestCode(cellA As Range, Optional colOffsetA As Variant, Optional colOffsetB As Variant) As String If IsEmpty(colOffsetB) Then colOffsetB = colOffsetA End If 

我相信你所寻找的是IsMissing而不是IsEmpty 。 尝试这个:

 If IsMissing(colOffsetB) = True Then colOffsetB = colOffsetA End If 

这是关于可选参数的一篇很棒的文章 。

使用vbNUllString比IsEmpty快一点,x =“”,….

 Function TestCode(cellA As Range, Optional colOffsetA As Variant, Optional colOffsetB As Variant) As String If colOffsetB=vbNullString Then colOffsetB = colOffsetA do end function 

如果你的条件是基本放在一些行上, end if没有必要end if
希望你有帮助