2013-02-27 125 views
2

我用下面在我的Excel仪表板声明:Excel的VBA兼容性问题

HeaderTableSheet.ChartObjects("Header_BreakEvenAnalysis").Copy 

它工作得很好,每次上的Excel 2007,但给错误“应用程序定义或对象定义的错误”,在Excel中 -2010(这也不是每次)

我不能找出原因。

对于同样的任何解决方案/解决办法吗?

+1

你有没有注意到,2007年是一个在2003年到2010年之间的事件制造商。也就是说,走向2007年,对象模型发生了变化,事实上它错过了很多(特别是在Charting对象类中)。那么在这里使用“宏”? – bonCodigo 2013-02-27 08:33:45

+0

@bonCodigo:是的,我在这里使用宏。任何解决方法,你可以建议? – Tejas 2013-02-27 10:53:08

回答

0

你可以试试吗?

Option Explicit 

Sub yourSUB() 
Dim myChart As ChartObject 

'--- other codes 

    For Each myChart In Sheets("SheetName").ChartObjects 
     If myChart.Name = "Header_BreakEvenAnalysis" Then 
     myChart.Copy 
     End If 
    Next myChart 

'---other codes 
'---release the memory and clean up 
Set myChart = Nothing 
End Sub 
+0

谢谢!我会在到家后立即尝试。 – Tejas 2013-02-27 10:55:17

+0

谢谢你的尝试,但它没有奏效。我发布了我在这里找到的答案。 – Tejas 2013-02-27 20:44:20

1

的表需要复制的图表(这是需要在Excel 2010只)

所以下面的代码工作之前被激活:

HeaderTableSheet.Activate 
HeaderTableSheet.ChartObjects("Header_BreakEvenAnalysis").Copy