繁体   English   中英

VBA中的自定义函数出现#VALUE错误

[英]#VALUE error in custom function in VBA

下面是我的代码,我试图返回“ std”的值,但它给出了#VALUE错误。 我给“ strng”的输入字符串是3,3,3,-,3我期望的结果是7。

Dim strng As Double
Dim std, i As Long
---------------------------------------------------
Function defaulters(strng) As Double
std = 4
a = Split(strng, ",")
    For i = 0 To Len(strng)
      If a(i) = "-" Then
        std = std - 1
      Else
        std = std + 1
      End If
    Next i
defaulters = std
End Function

您的For应该是这样的

For i = LBound(a) To UBound(a)

整个事情将是:

Function defaulters(strng) As Double
std = 4
a = Split(strng, ",")
    For i = LBound(a) To UBound(a)
      If a(i) = "-" Then
        std = std - 1
      Else
        std = std + 1
      End If
    Next i
defaulters = std
End Function

此外,根据您在评论部分发现的问题,您的代码逻辑也应按以下方式更新

Function defaulters(strng) As Double
std = 4
a = Split(strng, ",")
    For i = LBound(a) To UBound(a)
        If a(i) = "-" Then
            std = std - 1
        Else
            std = std + Len(a(i))
        End If
    Next i
defaulters = std
End Function

测试一下:

Dim strng As String
Dim std, i As Long

Sub defaulters()
    strng = "3,3,3,-,3"
    std = 4

    a = Split(strng, ",")
    f = UBound(a) - LBound(a) + 1
    For i = 0 To f - 1
        If a(i) = "-" Then
            std = std - 1
        Else
            std = std + 1
        End If
    Next i

End Sub

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM