Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/fsharp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel DNA:F#错误初始化[错误]方法未注册_F#_Excel Dna - Fatal编程技术网

Excel DNA:F#错误初始化[错误]方法未注册

Excel DNA:F#错误初始化[错误]方法未注册,f#,excel-dna,F#,Excel Dna,作为一名F#开发新手,我尝试创建一个简单的Excel DNA函数,如下所示: [<ExcelFunction(Name="ACount", Description="Count items", Category="Misc Functions", IsThreadSafe = true)>] let aCount (range: _[]) (filter: string) = let result = Seq.ofArray range |

作为一名F#开发新手,我尝试创建一个简单的Excel DNA函数,如下所示:

[<ExcelFunction(Name="ACount", Description="Count items", Category="Misc Functions", IsThreadSafe = true)>]
let aCount (range: _[]) (filter: string) = 
    let result = 
        Seq.ofArray range
        |> Seq.filter (fun x -> x = filter)
        |> Seq.length
    result
[]
让A计数(范围:[])(筛选器:字符串)=
让结果=
顺序排列范围
|>顺序过滤器(乐趣x->x=过滤器)
|>序号长度
结果
但加载到Excel 2016时会产生以下错误(64位):

初始化[错误]方法未注册- 不支持的签名,抽象或通用:

我做错了什么?

谢谢戈弗特

以下内容很有用,但它是否足够地道

[<ExcelFunction(Name="ACount", Description="Count items", Category="Misc Functions", IsThreadSafe = true)>]
let aCount (range: obj[]) (filter: string) = 
    let result = 
        Seq.ofArray range
        |> Seq.filter (fun x -> string x = filter)
        |> Seq.length
    result
[]
让A计数(范围:obj[])(筛选器:字符串)=
让结果=
顺序排列范围
|>Seq.filter(乐趣x->string x=filter)
|>序号长度
结果

欢迎任何有建设性的改变

如果将
\uu[]
替换为
字符串[]
,会发生什么情况?你在上面停留的功能是什么?Fyodor,谢谢你的快速跟进。根据请求:val aCount:range:string[]->filter:string->intString默认情况下Excel DNA不支持数组(不使用注册扩展名)。通过将结果值强制转换为obj来更改为object[]数组。Govert,你是说我需要将传入字符串[]转换为object[]和/或将传出int转换为object或两者?我的意思是,如果签名最终是
val account:range:obj[]->filter:string->int
,它应该可以工作。Excel将int转换为double,但不转换为字符串数组。