Excel VBA вопрос - если затем заявление ElseIf - PullRequest
3 голосов
/ 16 марта 2011

У меня есть условная функция VBA, которую я взломал вместе (я нуб), которая проверяет имя в ячейке и затем возвращает соответствующие варианты, если одно из условий выполняется, в противном случае возвращается пустое "".Вместо того, чтобы возвращать пробел, я хотел бы, чтобы он возвращал значение ячейки по умолчанию.

Например, у меня есть следующие ячейки и результаты, основанные на моей функции:

   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

Спасибо!

Ответы [ 3 ]

5 голосов
/ 16 марта 2011

Я думаю
Else<br> NameList = pVal
решает вашу проблему.

2 голосов
/ 16 марта 2011

Внимательно посмотрите на предложение else:

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

Функция возвращает пустую строку (""), если ни одно из предложений if / elseif не соответствует.

Если ваша функция вызывается с pVal="Scott", вы переходите к назначению по умолчанию.Что бы вы хотели, чтобы это было вместо пустой строки?

1 голос
/ 16 марта 2011

Не знаю, правильно ли я понимаю ваш вопрос, но попробуйте это

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...