为所有页面应用logging的macros

我为特定的表单录制了一个macros。 但我的问题是,每次我运行这个macros的另一个工作表时,它正在使用我创buildmacros的工作表的值。 但是我希望这个macros可以用于任何工作表。 这是我的代码看起来像:

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是我录制macros的表单名称。 我认为我需要用所有表单的一些共同点来改变它,但是却找不到逻辑。 我很感激任何评论。

你有工作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