Excel VBA功能不适用于Class

时间:2013-07-11 14:50:17

标签: vba excel-vba excel

我有这个函数,它可以调用自己来执行求和。但当它到达该行时,会弹出一个需要宏的窗口。 VBA不支持这个还是我错过了什么?

Sub SumUp(ByVal result As Double, ByVal number As Integer)

sumValue As Double
numValue As Integer

numValue = number

If (number > 0) Then

    sumValue = numValue * 2
    numValue = numValue - 1
    SumUp(result = sumValue, number = numValue)

Else
    MsgBox numValue
End If

End Sub

2 个答案:

答案 0 :(得分:1)

1。)从技术上讲,它不是一个函数,因为它没有返回任何值,所以调用SumUp(result = sumValue,number = numValue)是错误的

2。)你缺少Dim语句

- >

Sub SumUp(ByVal result As Double, ByVal number As Integer)

Debug.Print "result=" & result & ", number=" & number

Dim sumValue As Double
Dim numValue As Integer

numValue = number

If (number > 0) Then

    sumValue = numValue * 2
    numValue = numValue - 1


    SumUp sumValue, numValue

Else
    MsgBox numValue
End If

End Sub

执行

Sub testit()
SumUp 2, 2
End Sub

提供以下输出:

result=2, number=2
result=4, number=1
result=2, number=0

答案 1 :(得分:0)

SumUp(result = sumValue, number = numValue)

这在许多级别都无效。

如果您打算使用命名参数调用SumUp,则应该编写

SumUp result:= sumValue, number:= numValue

您不必使用命名参数:

SumUp sumValue, numValue