2013-02-15 141 views
1

我目前正試圖用數據填充圖表,用戶只需按下電子表格上的按鈕即可。我遇到的問題是我需要按鈕將數據複製到數據表,然後圖表將從數據表中填充。我能做到這一點,但我需要在圖表上爲每一個新的數據創建了一個新系列是恩特Excel 2010 VBA ..將系列添加到現有圖表

添加數據後
Sub RoundedRectangle2_Click() 

End Sub 


Sub MAPS() 
Sheets("MAPS_FORM").Range("e47").Copy 
Sheets("Data_Sheet").Range("b65536").End(xlUp).Offset(1, 0).PasteSpecial _ 
Paste:=xlPasteValues 
Application.CutCopyMode = False 
Sheets("MAPS_FORM").Range("d2").Copy 
Sheets("Data_Sheet").Range("a65536").End(xlUp).Offset(1, 0).PasteSpecial _ 
Paste:=xlPasteValues 
Application.CutCopyMode = False 



Sheets("Data_Sheet").Range("b2:b46").Copy 
Charts("Chart1").SeriesCollection.Paste 

Range("e6:i8").ClearContents 
Range("e12:i19").ClearContents 
Range("e23:i27").ClearContents 
Range("e31:i36").ClearContents 
Range("e40:i43").ClearContents 
Range("d2").ClearContents 
Sheets("Data_Sheet").Select 
End Sub 

回答

0

簡單地改變.SetSourceData屬性。

讓我們舉個例子

比方說,你的數據是從A1:A5和圖表是基於該範圍。見下面

enter image description here

截圖現在讓我們說你添加的數據是從B1:B5並希望這樣的表現在圖表中的一系列當您運行的代碼,然後只需使用此代碼

Option Explicit 

'~~> Please amend the code as applicable 
Sub Sample() 
    Dim objChrt As ChartObject 
    Dim chrt As Chart 

    Set objChrt = ActiveSheet.ChartObjects("Chart 1") 
    Set chrt = objChrt.Chart 

    With chrt 
     .SetSourceData (ActiveSheet.Range("A1:B5")) 
    End With 
End Sub 

圖表會自動顯示新的系列。

enter image description here

+0

感謝您的回覆。我必須在星期一試一試,看看我能否爲我工作。 – 2013-02-15 18:34:06

+0

我期待做的是每次按鈕被點擊時,一組新的數據被複制到Data_Sheet中,然後根據系列名稱作爲日期和系列數據點作爲新的系列輸入到圖表中數。 – 2013-02-19 14:00:26

+0

這就是代碼所做的。在工作表中輸入新數據後,只需更改「SetSourceData」。 – 2013-02-19 14:01:25

相關問題