如何使此录制的macros适用于工作簿中的所有工作表

我有这个logging的macros,它适用于一张纸,但我复制并粘贴和更改所有的纸张名称,当我运行它,它只适用于最后一张纸(甚至没有正确的纸张名称)。 我如何排列工作簿的所有表单(有8个)。

Sub Sort_Design_NEB() Range("A1").Select ActiveWorkbook.Worksheets("NEB_D").Sort.SortFields.Clear ActiveWorkbook.Worksheets("NEB_D").Sort.SortFields.Add Key:= _ Range("E2:E55"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _ xlSortNormal ActiveWorkbook.Worksheets("NEB_D").Sort.SortFields.Add Key:= _ Range("H2:H55"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _ xlSortNormal ActiveWorkbook.Worksheets("NEB_D").Sort.SortFields.Add Key:= _ Range("G2:G55"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _ xlSortNormal With ActiveWorkbook.Worksheets("NEB_D").Sort .SetRange Range("A1:H55") .Header = xlYes .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply End With 

结束小组

尝试使用工作簿所有工作表的循环。 喜欢这个:

 Dim WS_Count As Integer Dim I As Integer ' Set WS_Count equal to the number of worksheets in the active ' workbook. WS_Count = ActiveWorkbook.Worksheets.Count ' Begin the loop. For I = 1 To WS_Count Range("A1").Select With ActiveWorkbook.Worksheets(I) .Sort.SortFields.Clear .Sort.SortFields.Add Key:= _ .Range("E2:E55"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _ xlSortNormal .Sort.SortFields.Add Key:= _ .Range("H2:H55"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _ xlSortNormal .Sort.SortFields.Add Key:= _ .Range("G2:G55"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _ xlSortNormal End With With ActiveWorkbook.Worksheets(I).Sort .SetRange Range("A1:H55") .Header = xlYes .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply End With Next I 

更新声明。 感谢Thomas Inzina。