/ / jednoduchá úloha robí makro pomalým - excel, vba, excel-vba

jednoduchá úloha robí makro pomalým - vynikajúci, vba, vynikajúci-vba

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ď č. 1

Môž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