如果VBA然后函数总是返回0

时间:2015-05-29 16:29:25

标签: excel excel-vba vba

我的朋友和我在互联网上搜索了一个答案。我是VBA的新手,我的功能总是返回0.对此有一些帮助会很棒。以下是我的代码:

Function OnlineAbs(x As Date, y As Date, z As Date)

    If x > 0 Then
        If y > 0 Then
             result = "Online - Images"
        Else
            If z > 0 Then
                result = "Online - DT Images"
            Else
                result = "Online - No Images"
            End If
        End If
    Else
        result = "Abstract"
    End If

End Function

2 个答案:

答案 0 :(得分:1)

VBA中的函数返回有点不同。将要返回的值设置为函数名称将返回该值。

Function OnlineAbs(x As Date, y As Date, z As Date)

    If x > 0 Then
        If y > 0 Then
             OnlineAbs = "Online - Images"
        Else
            If z > 0 Then
                OnlineAbs = "Online - DT Images"
            Else
                OnlineAbs = "Online - No Images"
            End If
        End If
    Else
        OnlineAbs = "Abstract"
    End If

End Function

答案 1 :(得分:1)

此代码段存在几个问题:

  1. 一个小的语法错误:为了纠正它,保持代码更改最小,只需在函数结束前添加一个行语句(如Siddharth Rout所建议),即.H5_green_left { font-family: Arial, Helvetica, sans-serif; font-size: 15px; font-style: normal; font-weight: 400; font-variant: normal; color: #009900; padding-left: 4px; .web_description { font-family: Arial, Helvetica, sans-serif; font-size: 30px; font-style: normal; font-weight: 300; color: #009900; text-align: left; } @media screen and (max-width: 1200px){ .H5_green_left { font-size: 13px;} .web_description { font-size: 20px;} .H1_tan_italic_L { font-size: 24px; } } @media screen and (max-width: 768px){ .H5_green_left { font-size: 11px;}} .web_description { font-size: 12px;} .H1_tan_italic_L { font-size: 15px; } } 之前的.H5_green_left

  2. 更严重的问题是业务逻辑中的潜在缺陷(可能的类型不匹配):Excel中的.web_description类型工作表/ VBA具有基础值(例如,当前DateTime的工作表函数将返回:{ {1}};在VBA中对应的函数是CDbl(x)),对于大多数实际情况,对于1/1/1900之后的任何日期(1/1/1900的基础值为1),大于0;因此,您的函数将在1/1/1900之后的任何日期返回OnlineAbs = result

  3. 我建议验证您的业务逻辑。亲切的问候