Excel VBA问题 - 如果那么ElseIf声明

时间:2011-03-16 19:01:57

标签: excel vba excel-vba

我有一个VBA条件函数,我一起攻击(我是一个菜鸟),检查一个单元格中的名称然后返回适当的变量,如果其中一个条件为真,否则返回一个空白“”。而不是返回空白,我希望它返回默认的单元格值。

例如,根据我的功能,我有以下单元格和结果:

   Cells
   A        B
1  Bob      Bob Rob Robert
2  Mike     Mike Michael
3  Dan      Dan Daniel
4  Scott  

我希望B4的结果返回A4(Scott)中的默认值,而不是空白,如下所示:

   Cells
   A        B
1  Bob      Bob Rob Robert
2  Mike     Mike Michael
3  Dan      Dan Daniel
4  Scott    Scott

任何帮助将不胜感激:

这是我的功能(ElseIf中没有包含所有名称的缩写版本):

Function NameList(pVal As String) As String

    If pVal = "Bob" Then
        NameList = "Bob Rob Robert"
    ElseIf pVal = "Mike" Then
        NameList = "Mike Michael"
    ElseIf pVal = "Dan" Then
        NameList = "Dan Daniel"
    Else
        NameList = ""
    End If

End Function

谢谢!

3 个答案:

答案 0 :(得分:5)

我认为 Else
NameList = pVal

解决了你的问题。

答案 1 :(得分:2)

仔细看看else子句:

 [...]
 Else
     NameList = ""
 End If

如果if / elseif子句都不匹配,则该函数返回空字符串("")。

如果使用pVal="Scott"调用您的函数,则会进入默认分配。你想要它而不是空字符串?

答案 2 :(得分:1)

我不知道我是否正确理解你的问题,但试试这个

Function NameList(pVal As String) As String

If pVal = "Bob" Then
    NameList = "Bob Rob Robert"
ElseIf pVal = "Mike" Then
    NameList = "Mike Michael"
ElseIf pVal = "Dan" Then
    NameList = "Dan Daniel"
Else
    NameList = pVal
End If

End Function