简体   繁体   English

EXCEL / VBA - function 电子表格中的#VALUE错误

[英]EXCEL / VBA - function #VALUE error in spreadsheet

(I want to calculate the number of possible ways of getting 'sum' out of 'n' dice throws (dices have 'k' faces from 1..k).) (我想计算从“n”个骰子投掷中获得“总和”的可能方法的数量(骰子有 1..k 的“k”面)。)

When i want to use this function in an excel spreadsheet, I get a #VALUE error no matter what inputs i try.当我想在 excel 电子表格中使用这个 function 时,无论我尝试什么输入,我都会收到 #VALUE 错误。
I have other functions in the same module, used in the same sheet that work fine\我在同一个模块中有其他功能,在同一张工作表中使用,工作正常\

Function how_many_ways(n, k, sum)
    If n = 0 Then
        If sum = 0 Then
            how_many_ways = 1
        Else
            how_many_ways = 0
        End If
    End If
    
    If sum < 0 Or k * n < sum Or n > sum Then
        how_many_ways = 0
    End If
    
    res = 0
    For i = 1 To k
        res = res + how_many_ways(n - 1, k, sum - i)
    Next i
    
    how_many_ways = res
    
End Function

It always runs the for loop so it recurs infinitely.它总是运行 for 循环,因此它无限循环。 Try this.尝试这个。

Function how_many_ways(n, k, sum)
    If n = 0 Then
        If sum = 0 Then
            how_many_ways = 1
        Else
            how_many_ways = 0
        End If
    ElseIf sum < 0 Or k * n < sum Or n > sum Then
        how_many_ways = 0
    Else
       res = 0
       For i = 1 To k
           res = res + how_many_ways(n - 1, k, sum - i)
       Next i
       how_many_ways = res
    End If
End Function

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

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