3

我的问题是,我想将一组字符串从 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 服务的方法如果我使用对象作为参数类型,它会给出错误,如所附屏幕截图所示

4

1 回答 1

0

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

我认为这不是最好的主意,但是在完成上述对我来说已经足够好的之后,我停止了寻找更好的方法。

于 2013-03-07T09:30:34.430 回答