将数组数据从excel VBA发送到WCF

我的问题是,我想从VBA向WCF发送一个字符串数组。

c#代码是:

[OperationContract] void SetSomeObjects(string[] data); 

这是VBA部分

 Dim data(2) As String data(0) = "abc" data(1) = "def" Dim service2 As Object Set service2 = GetObject(ServiceBindingInformation) service2.SetSomeObjects data 

最后一行抛出VBA

 "Type Mismatch Error" 

我不知道为什么会这样。 请建议一种从VBA向WCF服务发送数组数据的方法如果我使用object作为参数类型,它会给出错误,如附带的屏幕截图所示

我认为问题出在C#代码中。

一旦我想基于Linq(C#)对数组(VBA)进行排序。 数组以传递函数/方法的方式传递给UDF:

 Dim UDF_Array As UDFArrayLinqTest.ArrayLinq Set UDF_Array = New UDFArrayLinqTest.ArrayLinq TBL = Array(...) Range(...) = UDF_Array.ArraySorted(TBL) 

C#中的简单UDF如下:

 public double[] ArraySorted(object tbl) { object[] obj = (object[])tbl; var filtr = from i in obj orderby Convert.ToDouble(i) select Convert.ToDouble(i); double[] result = (double[])filtr.ToArray(); return result; } 

我认为这不是最好的主意,但是在我做完之后我就停止了更好的搜索,这对我来说已经足够了。