/ / Excel VBA kódovanie výkonu - Excel, vba, excel-vba

Nastavenia kódovania výkonu programu Excel VBA - excel, vba, excel-vba

Ja som skúmal, ako urýchliť môj kód vExcel VBA a ja som narazil na nasledujúce nastavenia, ktoré boli užitočné.Moja otázka je: je možné nastaviť nasledujúce riadky kódu do jednej premennej, že môžem nastaviť na On alebo Off aktivovať celý zoznam?

speedUpCode = On

by nastaviť všetky nižšie nastavenia a ak by bolo nastavené na hodnotu Vypnuté, vrátilo by všetko nižšie do True / xlCalculationAutomatic

With Application
.ScreenUpdating = False
.DisplayStatusBar = False
.Calculation = xlCalculationManual
.EnableEvents = False
End With
ActiveSheet.DisplayPageBreaks = False "note this is a sheet-level setting

odpovede:

7 pre odpoveď č. 1

Používam to (veľmi základné):

Sub GoFast(Optional bYesNo As Boolean = True)
With Application
.ScreenUpdating = Not bYesNo
.Calculation = IIf(bYesNo, xlCalculationManual, xlCalculationAutomatic)
End With
End Sub

Zavolajte s True alebo žiadny parameter na zrýchlenie vecí, potom s False obnoviť.

Pripomienky uvedené vyššie o prípadnom zachyteníaktuálny stav rôznych nastavení, takže sa môžete vrátiť do "pôvodného" stavu a nie všetky nastavenia sú vždy vhodné aktualizovať v závislosti na tom, čo presne robíte, všetko stojí za zváženie.


3 pre odpoveď č. 2

Môžete použiť funkciu, ako to urobiť ...

Function speedUpCode(sStatus As String)

If sStatus = "On" Then
With Application
.ScreenUpdating = False
.DisplayStatusBar = False
.Calculation = xlCalculationManual
.EnableEvents = False
End With

ActiveSheet.DisplayPageBreaks = False "note this is a sheet-level setting

Else if sStatus = "Off" then

With Application
.ScreenUpdating = True
.DisplayStatusBar = True
.Calculation = xlCalculationAutomatic
.EnableEvents = True
End With

ActiveSheet.DisplayPageBreaks = True "note this is a sheet-level setting

End Function

potom ich môžete použiť na zapnutie a vypnutie

  speedUpCode "On"
speedUpCode "Off"

Majte však na pamäti, že sa otáčatenastavenia a zapnutia - pravdepodobne by ste ich mali skontrolovať skôr, ako ich zmeníte, aby ste ich mohli resetovať na pôvodné nastavenie skôr, než ich znovu vypnite môžete to urobiť so statickými premennými