我有以下数据
Name Date Number_of_apples
-------------------------------
abc 1-1-2012 5
abc 2-1-2012 3
xyz 1-1-2012 4
xyz 2-1-2012 2
xyz 3-1-2012 6
我想在excel中绘制一个代表上述数据的2D折线图。
图表应包含X轴中的Date
和Y轴中的Number of apples
。
名称abc
的示例图:
根据名称的选择,图表应更新以表示该名称的数据。
答案 0 :(得分:1)
这对我有用。一些说明:
Worksheet
模块name
列中的名称,例如'xyz','abc'等。以下是代码:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Target, Range("A:A")) Is Nothing Then
UpdateChart Target
End If
End Sub
Sub UpdateChart(name As Range)
Dim startRow As Integer, lastRow As Integer
Dim namerng As Range, data As Range, applechart As ChartObject
Set namerng = Range("A1:A" & Range("A1").End(xlDown).Row)
startRow = WorksheetFunction.Match(name.Value, namerng, 0)
lastRow = startRow + WorksheetFunction.CountIf(namerng, name.Value) - 1
On Error Resume Next
Set applechart = ActiveSheet.ChartObjects("AppleChart")
Set data = Range("B" & startRow & ":C" & lastRow)
If Not applechart Is Nothing Then
applechart.Activate
ActiveChart.SetSourceData Source:=data
Else
ActiveSheet.Shapes.AddChart.Select
ActiveSheet.ChartObjects(1).name = "AppleChart"
ActiveChart.ChartType = xlLine
ActiveChart.SetSourceData Source:=data
End If
End Sub
编辑:如何在Excel中设置
ALT
+ F11
。这将打开VBA编辑器Worksheet
SelectionChange
注意 - 我假设您的数据从A列开始。如果不是,您需要自己修改代码中的列引用