2011-03-16 44 views
3

我有一个VBA条件函数,我一起入侵(我是一个noob),检查单元格中的名称,然后返回适当的变化,如果其中一个条件为真,否则它返回空白“”。而不是返回一个空白,我希望它返回默认的单元格值。Excel VBA的问题 - 如果然后ElseIf语句

举个例子,我根据我的函数如下细胞和结果:

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

我想结果为B4返回在A4(斯科特)的默认值,而不是空白,像这样:

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 

谢谢!

回答

5

我觉得
Else
NameList = pVal

解决您的问题。

2

在else子句好好看看:

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

该函数返回空字符串("")如果没有如果/ ElseIf子句匹配。

如果你的函数是用pVal="Scott"调用的,那么你可以看到默认的赋值。你想要什么而不是空字符串?

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