Χρήσιμες πληροφορίες στη γραμμή κατάστασης

Κάποιος αρέσει, αλλά προσωπικά χρειάζομαι μια γραμμή κατάστασης μόνο σε 2-3 περιπτώσεις:

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

Όχι τόσο για μια γραμμή που καταλαμβάνει σχεδόν όλο το πλάτος της οθόνης και κρέμεται από αυτήν όλη την ώρα. Ας προσπαθήσουμε να επεκτείνουμε αυτήν τη λιτή λίστα και να προσθέσουμε μερικές ακόμη χρήσιμες λειτουργίες σε αυτήν 🙂

Γενικές αρχές για τη διαχείριση της γραμμής κατάστασης

Η διαχείριση της γραμμής κατάστασης με τη Visual Basic είναι πολύ εύκολη. Για να εμφανίσετε το κείμενό σας σε αυτό, μπορείτε να χρησιμοποιήσετε μια απλή μακροεντολή:

Sub MyStatus() Application.StatusBar = "Привет!" End Sub  

Αφού το τρέξουμε, παίρνουμε:

Χρήσιμες πληροφορίες στη γραμμή κατάστασης

Για να επαναφέρετε την αρχική κατάσταση της γραμμής κατάστασης, θα χρειαστείτε το ίδιο σύντομο "anti-macro":

Sub MyStatus_Off() Application.StatusBar = False End Sub  

Στη βασική έκδοση, όπως μπορείτε να δείτε, όλα είναι πολύ απλά. Τώρα ας προσπαθήσουμε να αναπτύξουμε την ιδέα…

Διεύθυνση του επιλεγμένου εύρους στη γραμμή κατάστασης

 Στην επάνω αριστερή γωνία του παραθύρου του Excel στη γραμμή τύπων, μπορείτε πάντα να δείτε τη διεύθυνση του τρέχοντος κελιού. Αλλά εάν επιλεγεί μια ολόκληρη περιοχή, τότε, δυστυχώς, δεν θα δούμε τη διεύθυνση επιλογής εκεί - εμφανίζεται το ίδιο ενεργό κελί:

Χρήσιμες πληροφορίες στη γραμμή κατάστασης

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

Ανοίξτε τον Επεξεργαστή Visual Basic χρησιμοποιώντας το ομώνυμο κουμπί στην καρτέλα προγραμματιστή (Προγραμματιστής) ή συντομεύσεις πληκτρολογίου Αριστερά Alt+F11. Βρείτε το βιβλίο σας στην επάνω αριστερή γωνία του πίνακα Project και ανοίξτε τη μονάδα σε αυτό κάνοντας διπλό κλικ Αυτό το βιβλίο (Αυτό το Βιβλίο Εργασίας):

Στο παράθυρο που ανοίγει, αντιγράψτε και επικολλήστε τον ακόλουθο κώδικα μακροεντολής:

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range) Application.StatusBar = "Выделено: " & Selection.Address(0, 0) End Sub  

Τώρα, όταν επιλεγεί οποιοδήποτε εύρος (συμπεριλαμβανομένων περισσότερων από ένα!), η διεύθυνσή του θα εμφανίζεται στη γραμμή κατάστασης:

Χρήσιμες πληροφορίες στη γραμμή κατάστασης

Για να αποτρέψετε τη συγχώνευση των διευθύνσεων πολλών περιοχών που έχουν επιλεγεί με Ctrl, μπορείτε να προσθέσετε μια μικρή βελτίωση – χρησιμοποιήστε τη συνάρτηση Αντικατάσταση για να αντικαταστήσετε ένα κόμμα με ένα κόμμα με ένα κενό:

Ιδιωτικό Subbook_SheetSelectionChange(ByVal Sh ως αντικείμενο, ByVal Target As Range) Application.StatusBar = "Διαχωρισμένο: " & Replace(Selection.Address(0, 0), ",", ", ") Τέλος δευτερεύοντος  

Αριθμός επιλεγμένων κελιών στη γραμμή κατάστασης

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

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range) Dim CellCount As Variant, rng as Range For Every rng In Selection.Περιοχές 'Επανάληψη σε όλες τις επιλογές RowsCount = rng.Rows.Count 'αριθμός σειρών rng.ColumnsCount = . Μετρήστε 'αριθμός στηλών CellCount = CellCount + RowsCount * ColumnsCount 'συσσώρευση του συνολικού αριθμού των κελιών Επόμενη 'εμφάνιση στη γραμμή κατάστασης Application.StatusBar = "Selected: " & CellCount & " cell" End Sub  

Αυτή η μακροεντολή κάνει βρόχους σε όλες τις επιλεγμένες περιοχές Ctrl (εάν υπάρχουν περισσότερες από μία), αποθηκεύει τον αριθμό των γραμμών και στηλών σε κάθε περιοχή στις μεταβλητές RowsCount και ColumnsCount και συγκεντρώνει τον αριθμό των κελιών στη μεταβλητή CellCount, η οποία στη συνέχεια εμφανίζεται στη γραμμή κατάστασης. Στη δουλειά θα μοιάζει με αυτό:

Χρήσιμες πληροφορίες στη γραμμή κατάστασης

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

Application.StatusBar = "Selected: " & Replace(Selection.Address(0, 0), ",", ", ") & " - total " & CellCount & "cell"  

Τότε η εικόνα θα είναι πολύ υπέροχη:

Χρήσιμες πληροφορίες στη γραμμή κατάστασης

Λοιπόν, νομίζω ότι κατάλαβες την ιδέα. Προτείνετε στα σχόλια – τι άλλο θα ήταν χρήσιμο να εμφανιστεί στη γραμμή κατάστασης;

  • Τι είναι οι μακροεντολές, πώς λειτουργούν, πώς να τις χρησιμοποιήσετε και να τις δημιουργήσετε
  • Βολική επιλογή συντεταγμένων σε φύλλο Excel
  • Πώς να κάνετε πιο οπτικές τις σύνθετες φόρμουλες

Αφήστε μια απάντηση