通过工作表循环的macros

下面的macros执行一个计算并生成一个条形图。 目前它适用于第一张工作表(Sheet1),我希望能够在我的Excel工作簿中的所有工作表上重复相同的macros。 有一个简单的方法来做到这一点? 提前致谢。

Sub MyReport() Workbooks.Open Filename:= _ Application.GetOpenFilename Range("G2").Select ActiveCell.FormulaR1C1 = "=SUM(C[-5])" Range("H2").Select ActiveCell.FormulaR1C1 = "=SUM(C[-5])" Range("I2").Select ActiveCell.FormulaR1C1 = "=SUM(C[-5])" Range("J2").Select ActiveCell.FormulaR1C1 = "=SUM(RC[-3]:RC[-1])" Range("G1:I2").Select ActiveSheet.Shapes.AddChart.Select ActiveChart.SetSourceData Source:=Range("'Sheet1'!$G$1:$I$2") ActiveChart.ChartType = xlColumnStacked End Sub 

以下是如何使用每个循环将代码应用于每个工作表。 我也简化了一些你的代码。

 Sub MyReport() Dim Wkb As Workbook Dim Ws As Worksheet Dim chrt As Chart Set Wbk = Workbooks.Open(Filename:=Application.GetOpenFilename) For Each Ws In Wbk.Worksheets Ws.Range("G2:I2").FormulaR1C1 = "=SUM(C[-5])" Ws.Range("J2").FormulaR1C1 = "=SUM(RC[-3]:RC[-1])" Set chrt = Ws.Shapes.AddChart.Chart chrt.SetSourceData Source:=Ws.Range("$G$1:$I$2") chrt.ChartType = xlColumnStacked Next Ws End Sub 

结果(表1所示):

在这里输入图像说明