将数组数据从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; }
我认为这不是最好的主意,但是在我做完之后我就停止了更好的搜索,这对我来说已经足够了。