2016-08-04 384 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