Excel VBA的问题 – 如果再用ElseIf语句

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

作为一个例子,我有以下单元格和结果基于我的function:

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

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

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

任何帮助,将不胜感激:

这是我的function(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 

谢谢!

我认为
Else
NameList = pVal

解决你的问题。

仔细看一下else子句:

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

如果没有if / elseif子句匹配,函数将返回空string( "" )。

如果你的函数是通过pVal="Scott"调用的,那么你可以使用默认的赋值。 你想要什么而不是空string?

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

 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