复制粘贴图表Excel VBA

复制粘贴图表Excel VBA,excel,vba,charts,copy,paste,Excel,Vba,Charts,Copy,Paste,我的VBA代码有问题 这是我用VBA编写的第一个代码。 基本上,我希望它检查一个条件(sheet2中单元格F7的值),并基于此,我想在sheet2中粘贴两个图表中的一个 Private Sub CommandButton1_Click() CommandButton1.Caption = "Stock Size Range" CommandButton1.BackColor = 0 CommandButton1.ForeColor = 16777215 'Clear the cha

我的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”:下标超出范围,它指向直线(Charts(“Chart41”).ChartArea.Clear)

谢谢,

(很抱歉,我没有足够的声誉来写评论和询问更多信息,所以我会尽我所能!)

你好!

可能您需要转到要粘贴图表的所需工作表,创建一个图表,然后将一个ID与之关联,例如“MyNewChart”(您可以在“区域”中更改图表ID,该区域中的红色矩形中写着“节点5”)

然后在代码中,当需要粘贴图表时,可以编写:

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

HTH;)

ChartObjects(“Chart41”).Chart.ChartArea.Clear
谢谢,它说找不到具有指定名称的项目,我很确定我更改了名称。。“你觉得怎么样?”蒂姆·威廉姆斯说,“我设法让它起作用了。”。您能告诉我为什么我的原始代码不起作用吗?图表对象可以是图表工作表,或者如果它位于常规工作表上,它将包含在
ChartObject
中-在工作表上,是
ChartObject
有名称,而不是图表。还有一个问题,显然是行[Sheets”(“sheet1”)。ChartObjects(“图表41”)。图表。图表区域。清除]最后删除了整个图表,所以当代码想在图表41上粘贴另一个图表时,它找不到它,因为该行将其删除了!!@TimWilliams代码不再工作了,你能告诉我吗?@RCatanow这是什么行为?只在第一次工作,或者这是另一件事?也许最好的方法是删除现有图表(您的图表41),然后在粘贴前创建一个新图表,为其分配一个id,最后粘贴图表。每次需要执行宏时,都应执行此步骤