La barra di stato in Excel può essere utilizzata come monitor del codice. Quando il tuo codice VBA è lungo e svolgi diverse attività utilizzando VBA, spesso disabiliti l'aggiornamento dello schermo in modo da non vedere lo sfarfallio dello schermo. Ma a causa di ciò, non puoi sapere cosa sta succedendo nel tuo codice.
Se non sai dove si trova la barra di stato in Excel, eccola:
È possibile utilizzare una barra di stato di Excel per ottenere informazioni da Excel senza interferire con l'esecuzione del codice. Puoi visualizzare le fasi del tuo Marco sulla barra di stato o utilizzarlo come barra di avanzamento.
Codice VBA per visualizzare i messaggi sulla barra di stato di Excel
Application.StatusBar = "Messaggio"
StatusBar è una proprietà dell'oggetto Application che accetta il testo come input.
In questo esempio, sto solo mostrando quale funzione è in esecuzione…
Sub DisplayMessageOnStatusBar() Application.ScreenUpdating = False Application.StatusBar = "Richiamo della funzione uno" ' chiama function_1 Application.Wait (Now + TimeValue("00:00:2")) Application.StatusBar = "Richiamo della funzione due" 'Chiama function_2 Application.Wait (Now + TimeValue("00:00:2")) Application.StatusBar = "Richiamo della funzione tre" 'Chiama function_3 Application.Wait (Now + TimeValue("00:00:2")) Application.StatusBar = "" Application.ScreenUpdating = True End Sub
In questo esempio, all'inizio l'aggiornamento dello schermo è impostato su False.
Ora, prima di chiamare la funzione_1, sto visualizzando un messaggio che sta chiamando la funzione uno.
Application.Wait (Now + TimeValue("00:00:2")) questa riga di codice serve solo per simulare una lunga chiamata di funzione in modo che io abbia 2 secondi per vederlo sulla mia barra di stato.
L'ho fatto prima di tutte le chiamate di funzione e alla fine ho impostato la barra di stato su vuota ("").
I messaggi della barra di stato sono molto utili per visualizzare i messaggi mentre si lavora con codice lungo. Quando il tuo codice passa attraverso più fasi o esegue un ciclo lungo, puoi mostrarlo sulla barra di stato in modo che l'utente sappia che il codice è in esecuzione. In caso contrario, l'utente potrebbe pensare che il sistema si sia bloccato o qualcosa del genere.
Ora puoi ottenere in modo intelligente informazioni sulla barra di stato utilizzando VBA di Excel 2016, 2013, 2010 e 2007 utilizzando questo one-liner.
VECCHIO POST
Alcuni codici/macro vba richiedono molto tempo per l'esecuzione o l'esecuzione delle azioni richieste. Se hai disattivato l'aggiornamento dello schermo utilizzando la linea Application.ScreenUpdating = False all'inizio del codice, quindi se un utente esegue il codice, non saprà cosa sta succedendo e penserà che il sistema informatico non risponde. Puoi chiedere al codice di visualizzare un messaggio di stato sulla barra di stato in modo che l'utente sia informato sullo stato corrente del codice.
Ecco un semplice codice che fornisce una finestra di messaggio che mostra i valori nella colonna A a partire dalla riga 2 fino all'ultima riga. La barra di stato mostrerà il messaggio "Macro in esecuzione" mentre il codice è in esecuzione e, una volta eseguito il codice, mostrerà "Pronto" che è uno dei messaggi Excel predefiniti.
Option Explicit Sub macro1() Dim i As Long, lrow As Long Application.ScreenUpdating = False Application.DisplayAlerts = False Application.DisplayStatusBar = True With Worksheets(“Sheet1”) lrow = .Range(“A” & .Rows.Count) .End(xlUp).Row For i = 2 to lrow Application.StatusBar = “Macro in esecuzione” Msgbox .Range(“A” &i).Value Next i End With Application.StatusBar = “” Application.ScreenUpdating = True Application.DisplayAlerts = Vero End Sub
Per copiare il codice sopra nel tuo file,
- Premi Alt + F11 sulla tastiera.
- Sul lato sinistro, vedrai gli oggetti di Microsoft Excel.
- Fare clic con il tasto destro e selezionare Inserisci.
- Quindi fare clic su Modulo.
- Copia il codice nella finestra del codice a destra.
Puoi vedere il codice pubblicato nel modulo sottostante -
Ora cerchiamo di capire cosa fa ogni riga del codice -
Quindi prima impostiamo DISPLAYSTATUSBAR su true e poi impostiamo il messaggio per la barra di stato. Una volta che usiamo Application.StatusBar = “” alla fine del codice, tornerà al messaggio Excel predefinito che è PRONTO.
Ecco una foto della barra di stato mentre la macro è in esecuzione.
Al termine della macro, la barra di stato mostrerà quanto segue:
Allo stesso modo, puoi aggiornare la barra di stato in diverse parti del codice, in modo che l'utente sappia cosa sta succedendo mentre la macro è in esecuzione. A volte, potrebbero esserci una o più macro che coprono più processi e questa barra di stato sarà utile per sapere a quale processo è arrivata la macro.
Se ti è piaciuto il nostro blog, condividilo con i tuoi amici su Facebook. E puoi anche seguirci su Twitter e Facebook.
Ci piacerebbe avere tue notizie, facci sapere come possiamo migliorare, completare o innovare il nostro lavoro e renderlo migliore per te. Scrivici al sito di posta elettronica
Articoli popolari:
50 scorciatoie di Excel per aumentare la produttività
Come utilizzare la funzione CERCA.VERT in Excel
Come utilizzare la funzione CONTA.SE in Excel
Come utilizzare la funzione SOMMA.SE in Excel