Išjunkite (arba įjunkite) automatinius skaičiavimus - VBA kodų pavyzdžiai

Kai atnaujinate langelio vertę, „Excel“ atlieka darbo knygos perskaičiavimo procesą. Kai dirbate tiesiogiai „Excel“, norite, kad tai įvyktų 99,9% laiko (išskyrus atvejus, kai dirbate su itin didele darbo knyga). Tačiau tai tikrai gali sulėtinti jūsų VBA kodą. Gera praktika yra nustatyti skaičiavimus rankiniu būdu makrokomandų pradžioje ir atkurti skaičiavimus makrokomandų pabaigoje. Jei reikia perskaičiuoti darbaknygę, galite rankiniu būdu nurodyti „Excel“ apskaičiuoti.

Išjunkite automatinius skaičiavimus

Galite išjungti automatinį skaičiavimą naudojant makrokomandą, nustatydami ją į xlmanual. Naudokite šį VBA kodą:

1 Application.Calculation = xlManual

Vėl įjunkite automatinius skaičiavimus

Norėdami vėl įjungti automatinį skaičiavimą nustatydami xlAutomatic:

1 Taikymas. Skaičiavimas = xlAutomatinis

Rekomenduoju išjungti automatinius skaičiavimus pačioje procedūros pradžioje ir vėl įjungti automatinius skaičiavimus. Tai atrodys taip:

Išjungti automatinių skaičiavimų makrokomandos pavyzdį

12345678 Antrinis automatinis_skaičiavimas_pavyzdys ()Application.Calculation = xlManual'Daryk ką norsTaikymas. Skaičiavimas = xlAutomatinisPabaiga Sub

Rankinis skaičiavimas

Kai automatiniai skaičiavimai išjungti, galite naudoti Apskaičiuoti komanda priversti „Excel“ perskaičiuoti:

1 Apskaičiuoti

Taip pat galite nurodyti „Excel“ perskaičiuoti tik atskirą darbalapį:

1 Darbo lapai ("lapas1"). Apskaičiuokite

Taip pat galite nurodyti VBA perskaičiuoti tik diapazoną (spustelėkite, jei norite perskaityti mūsų straipsnį apie VBA skaičiavimo metodus)

Štai kaip tai gali atrodyti makrokomandos viduje:

12345678910111213 Antrinis automatinis_skaičiavimas_pavyzdys_meninis_skaičiavimas ()Application.Calculation = xlManual'Daryk ką nors„PerskaičiuotiApskaičiuoti'Daryk daugiau dalykųTaikymas. Skaičiavimas = xlAutomatinisPabaiga Sub

VBA nustatymai - pagreitinimo kodas

Jei jūsų tikslas yra pagreitinti kodą, taip pat turėtumėte pakoreguoti šiuos kitus nustatymus:

Ekrano atnaujinimo išjungimas gali labai pakeisti greitį:

1 Application.ScreenUpdating = Netiesa

Išjungus būsenos juostą taip pat bus nedidelis skirtumas:

1 Application.DisplayStatusBar = Netiesa

Jei jūsų darbaknygėje yra įvykių, procedūrų pradžioje taip pat turėtumėte išjungti įvykius (kad pagreitintumėte kodą ir išvengtumėte nesibaigiančių kilpų!):

1 Application.EnableEvents = Netiesa

Galiausiai jūsų VBA kodas gali būti sulėtintas, kai „Excel“ bando iš naujo apskaičiuoti puslapio pertraukas (Pastaba: tai neturės įtakos visoms procedūroms). Norėdami išjungti „DisplayPageBreaks“, naudokite šią kodo eilutę:

1 ActiveSheet.DisplayPageBreaks = Netiesa

Padėsite svetainės plėtrą, dalintis puslapį su draugais

wave wave wave wave wave