2012-12-19 60 views
0

動態圖形我有以下數據繪製在Excel

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

enter image description here

根據名稱的選擇,該圖應更新以表示該名稱的數據。

+0

你是說如果我選擇'XYZ',那麼顯示所有的XYZ數據?名稱字段是否總是分組'XYZ'數據總是在表中? –

回答

1

這對我有效。一些注意事項:

  1. 這個代碼需要被放置在一個Worksheet模塊
  2. 要更新圖表只需在您name列點擊名字,例如: 「XYZ」,「ABC」等
  3. 如果沒有圖出現時,它會創建一個先subseqently更新,同一個圖表

下面的代碼:

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

  1. 在Excel按​​F11。這將打開VBA編輯器
  2. 在左側項目窗口中,單擊保存數據的工作表,例如,工作表Sheet1
  3. 在左邊的下拉列表中選擇Worksheet
  4. 在右邊的下拉列表中選擇SelectionChange
  5. 剪切和粘貼代碼

注意 - 我假設你的數據開始A列中如果沒有你你需要自己修改代碼中的列引用

+0

如果你能向我解釋如何完成這個工作的整個過程,那將是非常好的。對不起,要求更多。我對excel非常陌生。 – CCoder

+0

我已經更新了答案。請參閱'編輯:如何在Excel中設置' –

+0

太棒了!非常感謝:)工作就像一個魅力! – CCoder