2011-03-16 63 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