在excel vba和c#之间来回传递参数

时间:2014-08-01 14:37:31

标签: c# excel-vba vba excel

我正在尝试使用带有excel和vba的C#。我用VS Express写了一个库dll,一切顺利,因为我只使用Excel中的唯一单元格作为一个或多个参数。然后我在下面几行中使用2 x 2的单元格范围尝试了其他的东西。

public class TryRange
{
    public double Sum1(object [,] r1)
    {
        int col1 = r1.GetLength(0);
        int row1 = r1.GetLength(1);
        double tmp = 0;
        for (int r = 0; r < row1; r++)
        {
            for (int c = 0; c < col1; c++)
            {
                tmp = tmp + (double)(r1[r, c]);
            }
        }
        return tmp;
    }
}

并在Excel中测试这些行在vba中

Public Function Try1(x As Variant) As Double
' name space in C# is ExcelVbaOne
Dim obj As ExcelVbaOne.TryRange
Dim y As Double

Set obj = New ExcelVbaOne.TryRange
Set y = obj.Sum1(x)
Essai1 = y
End Function

在C#中,我尝试使用Excel.Range r1和MicrosoftOffice.Interop.Excel而不是object [,] r1。我试过y = obj.Sum1(x)......但是vba程序在调用C#Sum1(x)的行中断,或者Excel单元格显示“VALUE!”。 有人可以帮忙吗?

0 个答案:

没有答案