我尝试在Excel和C#之间传输一些数据。为此,我编写了一个简单的C#类,使用一个属性来设置和获取数据。使用COM互操作可以将变体数组传递给C#吗?
[Guid("xxx")]
[ClassInterface(ClassInterfaceType.AutoDual)]
[ComVisible(true)]
public class Vector
{
private object[,] _values;
public object[,] ExcelValues
{
get { ... }
set { ... }
}
}
获取VBA中的ExcelValues属性效果很好,但无法在VBA中进行设置。 VBA代码无法编译,如果我尝试设置属性:
Dim values As Variant
With myRange
' typo: Set values = Range(.Offset(0, 0), .Offset(100, 0))
values = Range(.Offset(0, 0), .Offset(100, 0))
End With
Dim data As New Vector
' this doesn't compile
data.ExcelValues = values
' this works
values = data.ExcelValues
任何建议,我怎么能acomplish这一点,没有在同一时间从变量数组一个设定每个值?
你说得对。这是一个错字,但它不是解决问题的办法。 – 2011-05-11 07:31:55