Excel VBA函数不适用于类

Excel VBA函数不适用于类,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 = num

我有一个函数,假设它调用自身来执行求和。但当它到达该行时,会弹出一个需要宏的窗口。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
这在许多层面上都是无效的

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

SumUp result:= sumValue, number:= numValue
但是,您不必使用命名参数:

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

2.)您缺少Dim语句

-->

执行

Sub testit()
SumUp 2, 2
End Sub
提供以下输出:

result=2, number=2
result=4, number=1
result=2, number=0
Sub testit()
SumUp 2, 2
End Sub
result=2, number=2
result=4, number=1
result=2, number=0