Excelgraphics到PowerPoint C ++ / CLI从HRESULTexception:0x800A03EC

我试图复制excelgraphics,然后将它们粘贴到使用C ++ / CLI的PowerPoint中,尽pipe在尝试使用Copy()方法时遇到了困难。 这里是我的代码现在的简化版本:

Worksheet = dynamic_cast<Excel::Worksheet^>(WS[3]); chartObjects = dynamic_cast<Excel::ChartObjects^>(Worksheet->ChartObjects(paramMissing)); existingChartObject = dynamic_cast<Excel::ChartObject^>(chartObjects->Item(2)); existingChartObject->Copy(); shapeRange = Slide->Shapes->Paste(); 

但是当我尝试这个,给我一个错误:

An unhandled exception of type 'System.NullReferenceException' occurred in Excel To PPT.exe

Additional information: Object reference not set to an instance of an object.

现在我的Excel工作簿在每张纸上都有6张图,从纸张3开始。如果我复制了纸张3上的所有graphics,并将它们粘贴到这样的一张幻灯片上。

把这个尝试叫做一个

 for(count = 1, count <= 6; ++count){ Worksheet = dynamic_cast<Excel::Worksheet^>(WS[2]); chartObjects = dynamic_cast<Excel::ChartObjects^>(Worksheet->ChartObjects(paramMissing)); existingChartObject = dynamic_cast<Excel::ChartObject^>(chartObjects->Item(count)); existingChartObject->Copy(); shapeRange = Slide->Shapes->Paste(); } 

那么就没有exception抛出。 现在,如果我试图做同样的事情,但从图2开始,而不是1我得到exception抛出。 喜欢这个:

称这个尝试两个

 for(count = 2, count <= 6; ++count){ Worksheet = dynamic_cast<Excel::Worksheet^>(WS[2]); chartObjects = dynamic_cast<Excel::ChartObjects^>(Worksheet->ChartObjects(paramMissing)); existingChartObject = dynamic_cast<Excel::ChartObject^>(chartObjects->Item(count)); existingChartObject->Copy(); shapeRange = Slide->Shapes->Paste(); } 

当我经过它,并在第二次尝试时将鼠标hover在existingCharObject上时,它不是空的,看起来与尝试1中的完全相同。

为什么第二次尝试会抛出exception,但第一次不会呢? 我应该能够复制任何Excel的ChartObject我想要的? 这迫使我从整个工作簿的ChartObject 1开始工作,不让我随机拷贝ChartObjects。

让我知道你是否有更多的信息需要。 我不想把我的整个项目放到这里,这是项目给我提出问题的唯一部分。