【问题标题】:Excel VBA question - If then ElseIf statementExcel VBA 问题 - If then ElseIf 语句
【发布时间】:2011-03-16 19:01:56
【问题描述】:

我有一个我一起破解的 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

谢谢!

【问题讨论】:

    标签: vba excel


    【解决方案1】:

    我认为
    Else
    NameList = pVal

    解决你的问题。

    【讨论】:

      【解决方案2】:

      好好看看 else 子句:

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

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

      如果你的函数是用pVal="Scott" 调用的,你就会陷入默认分配。您希望它是什么而不是空字符串?

      【讨论】:

        【解决方案3】:

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

        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
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2018-08-02
          • 1970-01-01
          • 2022-01-22
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多