2013-02-15 136 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

相关问题