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

本文关键字:WCF VBA excel 数组 数据 | 更新日期: 2023-09-27 18:02:10

我的问题是,我想从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作为参数类型,就会出现如下截图所示的错误

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

我认为问题出在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;
    }

我不认为这是最好的主意,但我停止寻找更好的一个后,我做了上面的,这对我来说已经足够好了。