我为特定的工作表录制了一个宏。但我的问题是,每次我为另一张表运行此宏时,它都使用我创建宏的工作表的值。但我希望这个宏适用于任何工作表。这是我的代码:
Sub AutoGraph()
'
' AutoGraph Macro
'
' Keyboard Shortcut: Ctrl+Shift+G
'
Range("B:B,C:C").Select
Range("C1").Activate
ActiveSheet.Shapes.AddChart2(227, xlLineMarkers).Select
ActiveChart.SetSourceData source:=Range("SHEET1!$B:$B,SHEET1!$C:$C")
Range("B:B,D:D,E1,E:E").Select
Range("E1").Activate
ActiveSheet.Shapes.AddChart2(227, xlLine).Select
ActiveChart.SetSourceData source:=Range( _
"SHEET1!$B:$B,SHEET1!$D:$D,SHEET1!$E$1,SHEET1!$E:$E")
End Sub
其中SHEET1是我记录宏的工作表名称。我想我需要用所有表格中常见的东西来改变它,但是找不到逻辑。我感谢任何评论。
答案 0 :(得分:1)
你有Sheet
硬编码。这就是为什么这样做。
执行此操作的一种方法是简单地删除对Sheet1的引用。这将导致Excel默认为您当前所在的任何工作表。
Sub AutoGraph()
'
' AutoGraph Macro
'
' Keyboard Shortcut: Ctrl+Shift+G
'
Range("B:B,C:C").Select
Range("C1").Activate
ActiveSheet.Shapes.AddChart2(227, xlLineMarkers).Select
ActiveChart.SetSourceData source:=Range("$B:$B,$C:$C")
Range("B:B,D:D,E1,E:E").Select
Range("E1").Activate
ActiveSheet.Shapes.AddChart2(227, xlLine).Select
ActiveChart.SetSourceData source:=Range( _
"$B:$B,$D:$D,$E$1,$E:$E")
End Sub