2016-08-04 380 views
0

我在这里有一个问题,我的VBA代码。复制粘贴图表Excel VBA

这是我在VBA中编写的第一个代码。 基本上我希望它检查一个条件(sheet2中的单元格F7的值),并基于此我想将两个图表中的一个粘贴到sheet2中。

Private Sub CommandButton1_Click() 


CommandButton1.Caption = "Stock Size Range" 
CommandButton1.BackColor = 0 
CommandButton1.ForeColor = 16777215 

'Clear the chart area 
Charts("Chart41").ChartArea.Clear 


If Sheets("sheet2").Range("F7") = 1 Then 'Aluminum Material 


    Sheets("sheet3").ChartObjects("Chart666").Select 
    Sheets("sheet3").ChartObjects("Chart666").Copy 
    ChartObjects("Chart41").Paste 

    Else 

    Sheets("sheet4").ChartObjects("Chart888").Select 
    Sheets("sheet4").ChartObjects("Chart888").Copy 
    ChartObjects("Chart41").Paste 

End If 

End Sub 

事情是,,当我点击命令按钮,它给了我一个运行时错误“9”:下标超出范围,它指向的线(图表(“Chart41”)ChartArea。 .Clear)

谢谢

+0

'ChartObjects( “Chart41”)。Chart.ChartArea.Clear' –

+0

谢谢,它说没有找到指定名称的项目,我很确定我更改了名称..您怎么看? –

+0

@TimWilliams我设法使它工作。你能告诉我为什么我原来的代码不起作用吗? –

回答

0

(对不起,但我没有足够的信誉来写评论和询问有关的详细信息,所以我会尽我所能!)

您好!

也许你需要去粘贴图表所需的图纸,创建一个图表,然后将一个图标关联到它,例如“MyNewChart”(你在“区域”中更改了图表ID在这个图像http://i.stack.imgur.com/hf2Nq.png

然后在你的代码,在一个红色长方形 “节点5” 的时候,你需要粘贴图表,你可以写:

Sheets("WriteSheetNameHere").ChartObjects("MyNewChart").Paste 

HTH)

+0

非常感谢你,现在它能正常工作 –

+0

代码不能再工作,,请你指教一下? @RCaetano –

+0

这是什么行为?只有第一次工作,或者是另一回事?也许最好的方法是删除现有的图表(图表41),然后在粘贴之前创建一个新图表,为其分配一个id并最终粘贴图表。每次需要执行宏时,都应执行此步骤 – RCaetano