0

合計を実行するために自分自身を呼び出すと思われるこの関数があります。しかし、行に到達すると、マクロを必要とするウィンドウがポップアップします。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
4

2 に答える 2

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
于 2013-07-11T14:59:31.970 に答える