Excel 2010 VBA ..将系列添加到现有图表

时间:2013-02-15 15:14:54

标签: excel-vba vba excel

我目前正在尝试使用数据填充图表,用户只需按电子表格上的按钮即可。我遇到的问题是我需要按钮将数据复制到数据表,然后图表将从数据表中填充。我可以做到这一点,但我需要在图表上为每个新数据创建一个新系列

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

1 个答案:

答案 0 :(得分: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