复制粘贴图表Excel VBA
我在这里有一个问题,我的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)
谢谢
(对不起,但我没有足够的信誉来写评论和询问有关的详细信息,所以我会尽我所能!)
您好!
也许你需要去粘贴图表所需的图纸,创建一个图表,然后将一个图标关联到它,例如“MyNewChart”(你在“区域”中更改了图表ID在这个图像http://i.stack.imgur.com/hf2Nq.png)
然后在你的代码,在一个红色长方形 “节点5” 的时候,你需要粘贴图表,你可以写:
Sheets("WriteSheetNameHere").ChartObjects("MyNewChart").Paste
HTH)
非常感谢你,现在它能正常工作 –
代码不能再工作,,请你指教一下? @RCaetano –
这是什么行为?只有第一次工作,或者是另一回事?也许最好的方法是删除现有的图表(图表41),然后在粘贴之前创建一个新图表,为其分配一个id并最终粘贴图表。每次需要执行宏时,都应执行此步骤 – RCaetano
'ChartObjects( “Chart41”)。Chart.ChartArea.Clear' –
谢谢,它说没有找到指定名称的项目,我很确定我更改了名称..您怎么看? –
@TimWilliams我设法使它工作。你能告诉我为什么我原来的代码不起作用吗? –