VBA ekrāna atjaunināšana Kodu darbības procesa paātrināšana

Excel VBA ekrāna atjaunināšana

VBA ekrāna atjaunināšana ir īpašums, ko izmanto, lai izvairītos vai novērstu uzmanības novēršanas mirgošanu koda palaišanas laikā un padarītu to ātru, izslēdzot ekrāna atjaunināšanu. Mēs varam izslēgt ekrāna atjaunināšanu, iestatot šo īpašumu kā nepatiesu.

Bieži vien mēs varam justies, ka Excel ekrāns kļūst traks, kamēr darbojas makro, un mēs to gandrīz neapmierinām. Bet kā mēs rīkojamies šajās situācijās un liekam kodam darboties ātrāk nekā parasti lēnām?

Ekrāna atjaunināšana ir kaut kas, ko mēs varam pamanīt, kamēr darbojas Excel makro. Kad uzdevums tiek izpildīts, mēs varam pamanīt, ka mūsu ekrāns atjaunina vērtības, līdz makro pabeidz piešķirto uzdevumu. Tā kā mūsu ekrāns mirgo vai atsvaidzina, tas noved pie Excel programmas palēnināšanās un uzdevuma izpildei nepieciešams ilgāks laiks nekā parasti.

VBA mums ir rekvizīts ar nosaukumu “ScreenUpdating”, un mēs šim īpašumam iestatījām FALSE, lai tas novērstu ekrāna atjaunināšanas procesu, kamēr kods darbojas.

Šajā rakstā mēs atvadīsimies no ekrāna darbības drāmas skatīšanās, kamēr kods darbojas. Šodien jūs liksit kodam darboties ātrāk un ātrāk nekā parasti.

Kad izmantot ekrāna atjaunināšanas funkciju?

Pieņemsim, ka jums ir šaubas, kad izmantot šo paņēmienu. Izpētiet zemāk minētos punktus.

  • Kad jūs veicat cilpu caur lielu skaitu šūnu.
  • E-pasta ziņojumu sūtīšana no Excel VBA.
  • Pārslēgšanās starp Excel darbgrāmatām.
  • Jaunu darbgrāmatu atvēršana.

Kā VBA kodā izmantot ekrāna atjaunināšanas funkciju?

1. piemērs - izslēdziet ekrāna atjaunināšanu

Piemēram, apskatiet zemāk redzamo kodu.

Kods:

Sub Screen_Updating () Dim RowCount As Long Dim ColumnCount As Long Dim MyNumber As Long MyNumber = 0 RowCount = 1-50 for ColumnCount = 1-50 MyNumber = MyNumber + 1 Cells (RowCount, ColumnCount). Atlasiet šūnas (RowCount, ColumnCount) .Value = MyNumber Next ColumnCount Next RowCount End Sub

Iepriekš ir ligzdstruktūras VBA cilpu ievietot sērijas numurus no pirmās kolonnas ar 50 th kolonnu un atkal nāk atpakaļ un ievietojiet sērijas numurs, sākot no 51, no otrās rindas ar 50 th kolonnas.

Tāpat kā tas, tas būs ievietot līdz tas sasniedz 50 th rindu.

Kamēr šis kods darbojas, jūs varat pamanīt, ka ekrāns mirgo, un jūs nevarat darīt neko citu, kā tikai skatīties šo trako mirkli.

Lai izvairītos no visiem šiem, mēs varam pievienot ekrāna atjaunināšanu uz FALSE.

Lai vispirms piekļūtu ekrāna atjaunināšanas funkcijai, mums ir jāpiekļūst lietojumprogrammas objektam.

Kā redzam ar objektu Application, mums ir daudz īpašību un metožu. Tātad IntelliSense sarakstā atlasiet Ekrāna atjaunināšana.

Piezīme. Ekrāna atjaunināšanas funkcija jāpielieto uzreiz pēc mainīgo deklarēšanas.

Pēc rekvizīta Screen Updating atlasīšanas ielieciet vienādības zīmi (=).

Kā redzam, divas Būla vērtības, ti, FALSE & TRUE.

Lai apturētu ekrāna atjaunināšanu, iestatiet statusu FALSE.

Tagad, kad makro sāk darboties pirmais, tas atjauninās ekrāna atjaunināšanas statusu uz FALSE un pāriet uz nākamo rindu.

Tā kā makro izpildīja ekrāna atjaunināšanu uz FALSE, tas neļaus ekrānam atjaunoties, kamēr kods izpilda savu uzdevumu.

2. piemērs -

Vienmēr beigās iestatiet ekrāna atjaunināšanu uz TRUE

Esmu redzējis, ka daudzi cilvēki ekrāna atjaunināšanu ir iestatījuši uz FALSE, bet makro beigās aizmirsu to iestatīt uz TRUE.

Makro beigās vienmēr iestatiet ekrāna atjaunināšanu atpakaļ uz TRUE.

Kods:

Sub Screen_Updating () Dim RowCount As Long Dim ColumnCount As Long Dim MyNumber As Long Application.ScreenUpdating = False MyNumber = 0 RowCount = 1 līdz 50 For ColumnCount = 1 līdz 50 MyNumber = MyNumber + 1 šūnas (RowCount, ColumnCount). Atlasiet šūnas (RowCount, ColumnCount). Vērtība = MyNumber Nākamā ColumnCount Nākamā RowCount Application.ScreenUpdating = True End Sub

Interesanti raksti...