excel VBA用户定义函数中是不是可以有多个if语句

Posted

技术标签:

【中文标题】excel VBA用户定义函数中是不是可以有多个if语句【英文标题】:Is it possible to have more than one if statement in an excel VBA User Defined Functionexcel VBA用户定义函数中是否可以有多个if语句 【发布时间】:2017-09-27 19:36:41 【问题描述】:

我在 Excel VBA 中创建了以下函数:

Function GetBTM(bai As Integer, comment As String, amt As Double)
If (bai = 195) Then
  GetBTM = "Customer Wires"
End If

If (bai = 399 And Application.WorksheetFunction.Find("MOV TIT", comment) > 0) Then
  GetBTM = "Customer Wires"
End If

End Function

当我在电子表格中使用该函数时,只有第二个 if 语句有效,第一个语句会产生 #value。我相信我的语法是正确的,所以我不确定我哪里出错了。

谢谢

【问题讨论】:

多个 IF 语句在 Excel VBA 中运行良好,我一直在使用它们。我会检查GetBTM = "Customer Wires"中的实际文本,那里可能有一个不可打印的字符。 【参考方案1】:

这对你有帮助吗?

Public Function GetBTM(bai As Integer, comment As String, amt As Double)

    If (bai = 195) Then
      GetBTM = "Customer Wires"
    ElseIf (bai = 399 And Application.WorksheetFunction.Find("MOV TIT", comment) > 0) Then
      GetBTM = "Customer Wires"
    End If

End Function

【讨论】:

感谢您的回复,因此我需要使用嵌套 If 语句,因为该函数采用其主体中生成的最后一个值。我应该知道的更好。再次感谢。

以上是关于excel VBA用户定义函数中是不是可以有多个if语句的主要内容,如果未能解决你的问题,请参考以下文章

Excel VBA - 条件格式中的用户定义函数

EXCEL 的自定义 VBA 函数中的用户定义警告

易失性用户定义函数未按预期重新计算(VBA/Excel)

Excel VBA - 用户定义函数 - 可变大小参数

excel表里的函数range怎么用的

VBA Excel中的用户定义函数不可访问?