Cum se afișează un mesaj pe bara de stare Excel folosind VBA

Anonim

Bara de stare în excel poate fi utilizată ca monitor de cod. Când codul dvs. VBA este lung și faceți mai multe sarcini folosind VBA, dezactivați adesea actualizarea ecranului, astfel încât să nu vedeți ecranul care pâlpâie. Datorită acestui fapt, nu veți afla ce se întâmplă în codul dvs.

Dacă nu știți unde este bara de stare în Excel, iată-o:

Puteți utiliza o bară de stare Excel pentru a obține informații de la Excel fără a interfera cu executarea codului. Puteți afișa etapele lui Marco pe bara de stare sau îl puteți folosi ca bara de progres.

Cod VBA pentru a afișa mesajele pe bara de stare a Excel

Application.StatusBar = "Mesaj"

StatusBar este o proprietate a obiectului Application care ia text ca intrare.

În acest exemplu, arăt doar ce funcție rulează …

Sub DisplayMessageOnStatusBar () Application.ScreenUpdating = False Application.StatusBar = "Funcția de apelare una" 'funcție de apel_1 Aplicație. Așteptați (Acum + TimeValue ("00: 00: 2")) Application.StatusBar = "Funcția de apelare doi" „Funcție de apel_2 Aplicație. Așteptați (Acum + Valoare de timp („ 00: 00: 2 ”)) Application.StatusBar = "Funcția de apelare Trei" 'Call function_3 Application.Wait (Now + TimeValue ("00: 00: 2")) Application.StatusBar = "" Application.ScreenUpdating = True End Sub 

În acest exemplu, actualizarea ecranului este setată False la început.

Acum, înainte de a apela funcția_1, afișez un mesaj care apelează funcția unu.

Application.Wait (Now + TimeValue ("00: 00: 2")) această linie de cod este doar pentru a falsifica un apel de funcție lung, astfel încât să primesc 2 secunde să văd acest lucru pe bara mea de stare.

Am făcut-o înainte de toate apelurile funcționale și, în cele din urmă, am setat bara de stare la gol („”).

Mesajele din bara de stare sunt destul de utile pentru a afișa mesajele în timp ce lucrați cu un cod lung. Când codul dvs. trece prin mai multe etape sau rulează o buclă lungă, îl puteți afișa pe bara de stare, astfel încât utilizatorul să știe că codul rulează. În caz contrar, utilizatorul poate crede că sistemul a fost blocat sau ceva de genul acesta.

Acum puteți obține inteligent informații despre bara de stare folosind VBA Excel 2016, 2013, 2010 și 2007 folosind acest one-liner.

VECHI POST

Anumite macrocomenzi / coduri vba necesită mult timp pentru a rula sau executa acțiunile necesare. Dacă ați dezactivat actualizarea ecranului folosind linia Application.ScreenUpdating = Fals la începutul codului dvs., atunci dacă vreun utilizator rulează codul, nu va ști ce se întâmplă și va crede că sistemul computerului nu răspunde. Puteți solicita codului să afișeze un mesaj de stare pe bara de stare, astfel încât utilizatorul să fie informat despre starea curentă a codului.

Iată un cod simplu care oferă o casetă de mesaj care arată valorile din coloana A începând de la rândul 2 până la ultimul rând. Bara de stare va afișa mesajul „Macro rulează” pe măsură ce codul rulează și, odată ce codul este terminat, va apărea „Gata”, care este unul dintre mesajele Excel implicite.

Option Explicit Sub macro1 () Dim i As Long, lrow As Long Application.ScreenUpdating = False Application.DisplayAlerts = False Application.DisplayStatusBar = Adevărat cu foi de lucru („Sheet1”) lrow = .Range („A” & .Rows.Count) .End (xlUp) .Row For i = 2 to lrow Application.StatusBar = „Macro running” Msgbox .Range („A” & i) .Value Next i End With Application.StatusBar = „” Application.ScreenUpdating = True Application.DisplayAlerts = True End Sub 

Pentru a copia codul de mai sus în fișierul dvs.,

  • Apăsați Alt + F11 pe tastatură.
  • În partea stângă, veți vedea Microsoft Excel Objects.
  • Faceți clic dreapta și selectați Inserați.
  • Apoi faceți clic pe Modul.
  • Copiați codul în fereastra de cod din dreapta.

Puteți vedea codul postat în modulul de mai jos -

Acum, să înțelegem ce face fiecare linie a codului -

Deci, mai întâi setăm DISPLAYSTATUSBAR la adevărat și apoi setăm mesajul pentru bara de stare. Odată ce folosim Application.StatusBar = „” la sfârșitul codului, acesta va reveni la mesajul Excel implicit, care este GATA.

Iată o imagine a barei de stare în timp ce macro-ul rulează.

După terminarea macrocomenzii, bara de stare se va afișa după cum urmează -

În mod similar, puteți actualiza bara de stare în diferite părți ale codului, astfel încât utilizatorul să știe ce se întâmplă pe măsură ce macro-ul rulează. Uneori, ar putea exista una sau mai multe macro-uri care acoperă mai multe procese și această bară de stare va fi utilă pentru a ști la ce proces a ajuns macro-ul.

Dacă ți-au plăcut blogurile noastre, împărtășește-le prietenilor tăi de pe Facebook. Și, de asemenea, ne puteți urmări pe Twitter și Facebook.
Ne-ar plăcea să aflăm de la dvs., să ne anunțați cum putem îmbunătăți, completa sau inova munca noastră și să o îmbunătățim. Scrieți-ne pe site-ul de e-mail

Articole populare:

50 de comenzi rapide Excel pentru a vă crește productivitatea

Cum se utilizează funcția VLOOKUP în Excel

Cum se utilizează funcția COUNTIF în Excel

Cum se utilizează funcția SUMIF în Excel