如何检查Variant是否为空并在Excel VBA中为其指定其他变量

时间:2015-07-23 03:18:11

标签: excel vba excel-vba

我正在尝试创建一个有3个输入的函数,其中两个是可选的:colOffsetA& colOffsetB。如果函数中只使用了两个可选项中的一个,那么我希望这个值也自动分配给空值。现在,由于某种原因,代码为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

2 个答案:

答案 0 :(得分:6)

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

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

这是关于可选参数的great article

答案 1 :(得分:1)

使用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不是必需的 希望你有帮助