Πώς να εμφανίσετε ένα μήνυμα στη γραμμή κατάστασης του Excel χρησιμοποιώντας το VBA

Anonim

Η γραμμή κατάστασης στο excel μπορεί να χρησιμοποιηθεί ως οθόνη κώδικα. Όταν ο κώδικας VBA είναι μεγάλος και εκτελείτε πολλές εργασίες χρησιμοποιώντας το VBA, συχνά απενεργοποιείτε την ενημέρωση της οθόνης, έτσι ώστε να μην βλέπετε αυτήν την οθόνη να τρεμοπαίζει. Αλλά λόγω αυτού, δεν μπορείτε να μάθετε τι συμβαίνει στον κώδικά σας.

Εάν δεν γνωρίζετε πού βρίσκεται η γραμμή κατάστασης στο excel, εδώ είναι:

Μπορείτε να χρησιμοποιήσετε μια γραμμή κατάστασης του excel για να λάβετε πληροφορίες από το Excel χωρίς να παρεμβάλλετε την εκτέλεση του κώδικα. Μπορείτε να εμφανίσετε στάδια του Marco στη γραμμή κατάστασης ή να το χρησιμοποιήσετε ως γραμμή προόδου.

Κωδικός VBA για εμφάνιση μηνυμάτων στη γραμμή κατάστασης του Excel

Application.StatusBar = "Μήνυμα"

Το StatusBar είναι μια ιδιότητα του αντικειμένου Application που λαμβάνει κείμενο ως είσοδο.

Σε αυτό το παράδειγμα, απλώς δείχνω ποια λειτουργία εκτελείται…

Sub DisplayMessageOnStatusBar () Application.ScreenUpdating = Λάθος Application.StatusBar = "Λειτουργία κλήσης μία" 'call function_1 Application.Wait (Now + TimeValue ("00: 00: 2")) Application.StatusBar = "Λειτουργία κλήσης δύο" 'Call function_2 Application.Wait (Now + TimeValue ("00: 00: 2")) Application.StatusBar = "Λειτουργία κλήσης Τρία" 'Call function_3 Application.Wait (Now + TimeValue ("00: 00: 2")) Application.StatusBar = "" Application.ScreenUpdating = True End Sub 

Σε αυτό το παράδειγμα, η ενημέρωση οθόνης έχει οριστεί ως False στην αρχή.

Τώρα, πριν καλέσω τη συνάρτηση_1, εμφανίζω ένα μήνυμα που καλεί τη λειτουργία μία.

Εφαρμογή. Περιμένετε (Τώρα + TimeValue ("00: 00: 2")) αυτή η γραμμή κώδικα είναι απλώς για να πλαστογραφήσει μια μακροχρόνια κλήση λειτουργίας, έτσι ώστε να έχω 2 δευτερόλεπτα για να το δω στη γραμμή κατάστασης.

Το έκανα πριν από όλες τις κλήσεις συνάρτησης και στο τέλος, έβαλα τη γραμμή κατάστασης σε κενό ("").

Τα μηνύματα της γραμμής κατάστασης είναι αρκετά χρήσιμα για την εμφάνιση μηνυμάτων ενώ εργάζεστε με μεγάλο κώδικα. Όταν ο κώδικάς σας περνάει από πολλά στάδια ή εκτελείται μακρύ βρόχο, μπορείτε να το δείξετε στη γραμμή κατάστασης, έτσι ώστε ο χρήστης να γνωρίζει ότι ο κώδικας εκτελείται. Διαφορετικά, ο χρήστης μπορεί να πιστεύει ότι το σύστημα έχει κρεμάσει ή κάτι τέτοιο.

Τώρα μπορείτε έξυπνα να λάβετε πληροφορίες σχετικά με τη γραμμή κατάστασης χρησιμοποιώντας το VBA του Excel 2016, 2013, 2010 και 2007 χρησιμοποιώντας αυτήν τη μονή γραμμή.

ΠΑΛΙΑ ΑΝΑΡΤΗΣΗ

Ορισμένες μακροεντολές / κώδικες vba χρειάζονται πολύ χρόνο για να εκτελεστούν ή να εκτελεστούν οι απαιτούμενες ενέργειες. Εάν έχετε απενεργοποιήσει την ενημέρωση οθόνης χρησιμοποιώντας τη γραμμή Application.ScreenUpdating = Λάθος στην αρχή του κωδικού σας, τότε εάν κάποιος χρήστης εκτελέσει τον κώδικα, δεν θα ξέρει τι συμβαίνει και πιστεύει ότι το σύστημα υπολογιστή δεν ανταποκρίνεται. Μπορείτε να ζητήσετε από τον κωδικό να εμφανίσει ένα μήνυμα κατάστασης στη γραμμή κατάστασης, έτσι ώστε ο χρήστης να ενημερώνεται για την τρέχουσα κατάσταση του κώδικα.

Εδώ είναι ένας απλός κώδικας που δίνει ένα πλαίσιο μηνυμάτων που εμφανίζει τις τιμές στη στήλη Α, ξεκινώντας από τη γραμμή 2 έως την τελευταία σειρά. Η γραμμή κατάστασης θα εμφανίσει το μήνυμα "Μακροεντολή σε λειτουργία" καθώς ο κώδικας εκτελείται και μόλις ολοκληρωθεί ο κώδικας, θα εμφανιστεί "Έτοιμο" που είναι ένα από τα προεπιλεγμένα μηνύματα του Excel.

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 running" Msgbox .Range ("A" & i). Value Next i End With Application.StatusBar = "" Application.ScreenUpdating = True Application.DisplayAlerts = True End Sub 

Για να αντιγράψετε τον παραπάνω κώδικα στο αρχείο σας,

  • Πατήστε Alt + F11 στο πληκτρολόγιο.
  • Στην αριστερή πλευρά, θα δείτε τα αντικείμενα του Microsoft Excel.
  • Κάντε δεξί κλικ και επιλέξτε Εισαγωγή.
  • Στη συνέχεια, κάντε κλικ στην ενότητα.
  • Αντιγράψτε τον κώδικα στο παράθυρο κωδικών στα δεξιά.

Μπορείτε να δείτε τον κώδικα που δημοσιεύτηκε στην ενότητα παρακάτω -

Τώρα ας καταλάβουμε τι κάνει κάθε γραμμή του κώδικα -

Έτσι, πρώτα ορίζουμε το DISPLAYSTATUSBAR σε true και μετά ορίζουμε το μήνυμα για τη γραμμή κατάστασης. Μόλις χρησιμοποιήσουμε Application.StatusBar = "" στο τέλος του κώδικα, θα επιστρέψει στο προεπιλεγμένο μήνυμα Excel που είναι ΕΤΟΙΜΟ.

Ακολουθεί μια φωτογραφία της γραμμής κατάστασης ενώ εκτελείται η μακροεντολή.

Αφού τελειώσει η μακροεντολή, η γραμμή κατάστασης θα εμφανιστεί ως εξής -

Ομοίως, μπορείτε να ενημερώσετε τη γραμμή κατάστασης σε διαφορετικά μέρη του κώδικα, έτσι ώστε ο χρήστης να γνωρίζει τι συμβαίνει καθώς εκτελείται η μακροεντολή. Μερικές φορές, θα μπορούσαν να υπάρχουν μία ή περισσότερες μακροεντολές που καλύπτουν πολλές διαδικασίες και αυτή η γραμμή κατάστασης θα είναι χρήσιμη για να γνωρίζουμε σε ποια διαδικασία έχει φτάσει η μακροεντολή.

Αν σας άρεσαν τα ιστολόγια μας, μοιραστείτε το με τους φίλους σας στο Facebook. Επίσης, μπορείτε να μας ακολουθήσετε στο Twitter και το Facebook.
Θα θέλαμε πολύ να σας ακούσουμε, ενημερώστε μας πώς μπορούμε να βελτιώσουμε, να συμπληρώσουμε ή να καινοτομήσουμε το έργο μας και να το κάνουμε καλύτερο για εσάς. Γράψτε μας στον ιστότοπο email

Δημοφιλή άρθρα:

50 συντομεύσεις Excel για να αυξήσετε την παραγωγικότητά σας

Πώς να χρησιμοποιήσετε τη συνάρτηση VLOOKUP στο Excel

Πώς να χρησιμοποιήσετε τη συνάρτηση COUNTIF στο Excel

Πώς να χρησιμοποιήσετε τη συνάρτηση SUMIF στο Excel