简单的任务使macros慢

我正在尝试对一些单元格进行sorting,然后居中和粗体地添加我的列表的标题,这个过程非常缓慢。 这是一个工作macros的结尾,我发现在添加下面的代码之后它变慢了:

Columns("A:F").Select ActiveWorkbook.Worksheets("search results").sort.SortFields.Clear ActiveWorkbook.Worksheets("search results").sort.SortFields.Add Key:=Range( _ "E2:E112"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _ xlSortNormal With ActiveWorkbook.Worksheets("search results").sort .SetRange Range("A1:F112") .Header = xlYes .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply End With Worksheets("search results").Activate Range("A1").EntireRow.Insert Range("A1") = "A/A" Range("B1") = "Tag" Range("C1") = "Work" Range("D1") = "Ôýðïò" Range("E1") = "Date" Range("F1") = "Remark" Worksheets("search results").Range("A1:F1").Font.Bold = True Worksheets("search results").Range("A1:F1").HorizontalAlignment =xlCenter Worksheets("search results").Activate Range("A1").Activate 

是否有什么错误或方法来做到这一点更有效? 有时候,程序甚至没有响应,我必须closures并重新启动。

您可以尝试在脚本开始处closures“屏幕更新”,“事件”和“计算”,因为filter语句可能会非常慢。 你可以看看优化VBAmacros的信息如何优化您的脚本,并提高性能。

 Application.ScreenUpdating = False Application.EnableEvents = False Application.Calculation = xlCalculationManual Columns("A:F").Select With ActiveWorkbook.Worksheets("search results") .Sort.SortFields.Clear .Sort.SortFields.Add Key:=Range( _ "E2:E112"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _ xlSortNormal End with With ActiveWorkbook.Worksheets("search results").Sort .SetRange Range("A1:F112") .Header = xlYes .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply End With With Worksheets("search results") .Range("A1").EntireRow.Insert .Range("A1") = "A/A" .Range("B1") = "Tag" .Range("C1") = "Work" .Range("D1") = "Ôýðïò" .Range("E1") = "Date" .Range("F1") = "Remark" .Range("A1:F1").Font.Bold = True .Range("A1:F1").HorizontalAlignment = xlCenter .Range("A1").Activate End With Application.ScreenUpdating = True Application.EnableEvents = True Application.Calculation = xlCalculationAutomatic