Snažím sa usporiadať niektoré bunky a potom sa sústrediťa tučne doslovne pridané hlavičky môjho zoznamu a proces je veľmi pomalý. Toto je koniec funkčného makra a vidím, že sa po pridaní nasledujúceho kódu výrazne spomalil:
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
Existuje niečo zlé alebo spôsob, ako to dosiahnuť efektívnejšie? Niekedy program ani nereaguje a musím sa zavrieť a reštartovať.
odpovede:
0 pre odpoveď č. 1Môžete sa pokúsiť vypnúť aktualizáciu obrazovky, udalosti a výpočet na začiatku skriptu, pretože príkaz Filter môže byť skutočne pomalý. Môžete sa na to pozrieť Optimalizácia makra VBA Informácie o tom, ako optimalizovať svoje skripty a zvýšiť výkon.
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