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 に答える