2014-01-07 82 views
0

我想在Excel中編寫一個宏圖表,在圖表上繪製數字。如果您單擊A列中的特定單元格,宏應該在其旁邊畫一個數字的線圖。用於繪製圖形的宏

下面是宏代碼:

Sub Graph1() 
' 
' Graph1 Macro 
' 

' 
    ActiveCell.Offset(0, 9).Range("A1:D1").Select 
    ActiveSheet.Shapes.AddChart.Select 
    ActiveChart.ChartType = xlLine 
    ActiveChart.SetSourceData Source:=Range("'Sheet'!$J$4:$M$4") 
End Sub 

當我嘗試運行此宏單元格A2,例如,我與單元格A1相關的圖表。這發生在所有其他細胞。所以如果我運行單元格A10的宏,我會得到與單元格A1關聯的圖形。我將如何解決這個問題?

+0

出自@Bernardsaucier'我把這個意見,但我還不能......也許別人會完全掌握的追求但如果你要分享你正在使用的數據的樣本,我願意給予我的支持。「 – pnuts

回答

0

您強制源代碼爲固定範圍($ J $ 4:$ M $ 4)而不是activecell。嘗試下面的代碼與假設:

  1. 數據源僅由1排,4列從activecell
  2. 開始只使用第一圖表對象,如果沒有一個然後創建一個,並用它

代碼:

Sub Graph1() 
' 
' Graph1 Macro 
' 

' 
    Dim oRng As Range, oCht As Chart 
    Application.ScreenUpdating = False 
    Set oRng = ActiveCell.Range("A1:D1") 
    oRng.Select 
    On Error Resume Next 
    Set oCht = ActiveSheet.ChartObjects(1).Chart 
    On Error GoTo 0 
    If oCht Is Nothing Then Set oCht = ActiveSheet.Shapes.AddChart.Chart 
    If oCht.ChartType <> xlLine Then oCht.ChartType = xlLine 
    oCht.SetSourceData Source:=oRng 
    Set oCht = Nothing 
    Set oRng = Nothing 
    Application.ScreenUpdating = True 
End Sub