[英]#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.