2013-07-03 118 views
1

我已经通过各种职位,无法找出我的问题。Excel运行时错误13

我有一个COM对象,生成一个Excel.Range的数据,并把它交给一个Excel宏。然后将其设置为Variant,然后用它填充范围。非常简单,这是工作,但现在不是我不明白为什么。

C#通过设置引起我的错误的Variant来传回正确的数据。

任何想法?

的代码如下:

Dim rangeData As Variant 
rangeData = factory.Build(buildType) 

Worksheets(sheet).Activate 
Worksheets(sheet).range("A1:Z10000").Value = rangeData 

工厂对象是我的C#的COM对象。

回答

0

如果你的COM对象返回一个数组,你的rangeData可能应该是一个Variant类型的数组。

试图声明rangeData这样(注意括号中):

Dim rangeData() as Variant 
+0

如果I#'d所提到的C#回报和Excel.Range对象可能是有益的。所以将变量设置为数组并没有什么区别。我也尝试将Variant变量设置为一个范围对象。 –

+0

嗨,它的Microsoft.Office.Interop.Excel.Range –

+0

然后,你可能想尝试范围的复制方法:'rangeData.Copy目标:=工作表(“表”)。范围(“A1:Z10000”)' - 你需要declar erangeData作为范围这个 –