我正在尝试在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 :(得分:0)
您强制源是固定范围($ J $ 4:$ M $ 4)而不是activecell。尝试以下代码并假设:
<强>代码:强>
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