清除logging的Excelmacros中的代码

我用loggingmacrosfunction来创build这个function,但是运行起来很慢,我想看看是否有人对如何清理它有什么想法。 看起来好像我在这里有两样做同样的事情? 提前致谢。

Sub Activations() ' ' Master_Button2_2_Click Macro ' ' Application.ScreenUpdating = False Sheets("Index").Select Columns("A:C").Select ActiveWorkbook.Worksheets("Index").Sort.SortFields.Clear ActiveWorkbook.Worksheets("Index").Sort.SortFields.Add Key:=Range("B2:B12000" _ ), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal With ActiveWorkbook.Worksheets("Index").Sort .SetRange Range("A1:C12000") .Header = xlYes .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply End With Sheets("Duplicates").Select ActiveSheet.Range("$L$4:$N$3476").AutoFilter Field:=1, Criteria1:= _ "Activate" Sheets("Master").Select ActiveSheet.Range("$A$2:$BU$11965").AutoFilter Field:=73, Criteria1:= _ "A" Application.ScreenUpdating = True End Sub 

你的代码是相当简单的,尽pipe它不完全清楚它要完成什么。 这里有一个快速重写把几个With … End With用来缩小受影响的工作区域。

 Sub Activations() ' Master_Button2_2_Click Macro Dim lr As Long appTGGL bTGGL:=False With Worksheets("Index") lr = .Cells.SpecialCells(xlCellTypeLastCell).Row With .Range("A1:C" & lr) .Cells.Sort Key1:=.Columns(2), Order1:=xlAscending, _ Orientation:=xlTopToBottom, Header:=xlYes End With End With With Worksheets("Duplicates") If .AutoFilterMode Then .AutoFilterMode = False lr = .Cells.SpecialCells(xlCellTypeLastCell).Row With .Range("L4:N" & lr) .AutoFilter Field:=1, Criteria1:="activate" End With End With With Worksheets("Master") If .AutoFilterMode Then .AutoFilterMode = False lr = .Cells.SpecialCells(xlCellTypeLastCell).Row With .Range("A2:BU" & lr) .AutoFilter Field:=73, Criteria1:="A" End With .Select End With appTGGL End Sub Sub appTGGL(Optional bTGGL As Boolean = True) With Application .EnableEvents = bTGGL .ScreenUpdating = bTGGL .DisplayAlerts = bTGGL .Calculation = IIf(bTGGL, xlCalculationAutomatic, xlCalculationManual) End With End Sub 

样本数据和一个简短的解释叙述将有助于这个问题。 我们不是全都说英文,但是我们都会讲代码和数据。