Μια μακροεντολή Excel για να προσδιορίσετε εάν ένα βιβλίο εργασίας είναι ανοιχτό

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

Μια μακροεντολή Excel για να προσδιορίσετε εάν ένα βιβλίο εργασίας είναι ανοιχτό

Αποφύγετε αυτό το προειδοποιητικό μήνυμα.

Πώς λειτουργεί η μακροεντολή

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

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

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

Συνάρτηση FileIsOpenTest(TargetWorkbook As String) Ως Boolean
'Βήμα 1: Δηλώστε τις μεταβλητές σας
    Dim TestBook As Workbook
«Βήμα 2: Πείτε στο Excel να συνεχίσει σε περίπτωση σφάλματος
    Σφάλμα Συνέχιση Επόμενο
'Βήμα 3: Προσπαθήστε να αντιστοιχίσετε το βιβλίο εργασίας προορισμού στο TestBook
    Ορισμός TestBook = Βιβλίο εργασίας (TargetWorkbook)
'Βήμα 4: Εάν δεν παρουσιάστηκε σφάλμα, το βιβλίο εργασίας είναι ήδη ανοιχτό
    Αν Σφάλμα.Αριθμός = 0 Τότε
    FileIsOpenTest = Αληθές
    Αλλού
    FileIsOpenTest = False
    Τέλος εαν
Λειτουργία τερματισμού

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

Στο Βήμα 2, λέτε στο Excel ότι ενδέχεται να υπάρχει σφάλμα κατά την εκτέλεση αυτού του κώδικα και, σε περίπτωση σφάλματος, συνεχίζετε τον κώδικα. Χωρίς αυτή τη γραμμή, ο κώδικας θα σταματούσε απλώς όταν παρουσιαστεί ένα σφάλμα. Και πάλι, δοκιμάζετε ένα δεδομένο όνομα αρχείου για να δείτε εάν μπορεί να αντιστοιχιστεί σε μια μεταβλητή Object. Εάν το δεδομένο βιβλίο εργασίας μπορεί να εκχωρηθεί, είναι ανοιχτό. εάν παρουσιαστεί σφάλμα, είναι κλειστό.

Στο Βήμα 3, επιχειρείτε να αντιστοιχίσετε το δεδομένο βιβλίο εργασίας στη μεταβλητή Αντικείμενο TestBook. Το βιβλίο εργασίας που προσπαθείτε να αντιστοιχίσετε είναι μια μεταβλητή String που ονομάζεται TargetWorkbook. Το TargetWorkbook μεταβιβάζεται στη συνάρτηση στις δηλώσεις συναρτήσεων (δείτε την πρώτη γραμμή του κώδικα). Αυτή η δομή εξαλείφει την ανάγκη σκληρής κωδικοποίησης ενός ονόματος βιβλίου εργασίας, επιτρέποντάς σας να το μεταβιβάσετε ως μεταβλητή.

Στο Βήμα 4, απλώς ελέγχετε για να δείτε εάν παρουσιάστηκε σφάλμα. Εάν δεν παρουσιάστηκε σφάλμα, το βιβλίο εργασίας είναι ανοιχτό, επομένως ορίζετε το FileIsOpenTest σε True. Εάν παρουσιάστηκε σφάλμα, το βιβλίο εργασίας δεν είναι ανοιχτό και ορίζετε το FileIsOpenTest σε False.

Και πάλι, αυτή η συνάρτηση μπορεί να χρησιμοποιηθεί για την αξιολόγηση οποιουδήποτε αρχείου μεταβιβάζετε σε αυτήν, μέσω του ορίσματος TargetWorkbook. Αυτή είναι η ομορφιά της τοποθέτησης της μακροεντολής σε μια συνάρτηση.

Η ακόλουθη μακροεντολή δείχνει τον τρόπο υλοποίησης αυτής της συνάρτησης. Εδώ, καλείτε τη νέα συνάρτηση FileIsOpenTest για να βεβαιωθείτε ότι ο χρήστης δεν μπορεί να ανοίξει ένα ήδη ανοιχτό αρχείο:

Sub Macro1()

«Βήμα 1: Ορισμός μεταβλητής συμβολοσειράς

    Dim FName As Variant

    Dim FNFileOnly As String

«Βήμα 2: Η μέθοδος GetOpenFilename ενεργοποιεί το πλαίσιο διαλόγου

    FName = Application.GetOpenFilename( _

            FileFilter:="Βιβλία εργασίας του Excel,*.xl*", _

            Title:="Επιλέξτε ένα βιβλίο εργασίας για άνοιγμα", _

            MultiSelect:=False)

'Βήμα 3: Ανοίξτε το επιλεγμένο αρχείο εάν δεν έχει ήδη ανοίξει

    Αν FName <> False Τότε

    FNFileOnly = StrReverse(Left(StrReverse(FName), _

                 InStr(StrReverse(FName), ") - 1))

Leave a Comment

Τι είναι οι πίνακες ελέγχου και οι αναφορές στο Excel;

Τι είναι οι πίνακες ελέγχου και οι αναφορές στο Excel;

Στο Excel, είναι κρίσιμο να κατανοήσουμε τη διαφορά μεταξύ αναφορών και πινάκων εργαλείων για την αποτελεσματική ανάλυση και οπτικοποίηση δεδομένων.

Πότε να χρησιμοποιήσετε το OneDrive για επιχειρήσεις

Πότε να χρησιμοποιήσετε το OneDrive για επιχειρήσεις

Ανακαλύψτε πότε να χρησιμοποιήσετε το OneDrive για επιχειρήσεις και πώς μπορείτε να επωφεληθείτε από τον αποθηκευτικό χώρο των 1 TB.

Υπολογισμός του αριθμού ημερών μεταξύ δύο ημερομηνιών στο Excel

Υπολογισμός του αριθμού ημερών μεταξύ δύο ημερομηνιών στο Excel

Ο υπολογισμός του αριθμού ημερών μεταξύ δύο ημερομηνιών είναι κρίσιμος στον επιχειρηματικό κόσμο. Μάθετε πώς να χρησιμοποιείτε τις συναρτήσεις DATEDIF και NETWORKDAYS στο Excel για ακριβείς υπολογισμούς.

Πώς να ανανεώσετε τα δεδομένα συγκεντρωτικού πίνακα του Excel

Πώς να ανανεώσετε τα δεδομένα συγκεντρωτικού πίνακα του Excel

Ανακαλύψτε πώς να ανανεώσετε γρήγορα τα δεδομένα του συγκεντρωτικού πίνακα στο Excel με τέσσερις αποτελεσματικές μεθόδους.

Μια μακροεντολή Excel για απόκρυψη όλων εκτός από το ενεργό φύλλο εργασίας

Μια μακροεντολή Excel για απόκρυψη όλων εκτός από το ενεργό φύλλο εργασίας

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

Ιδιότητες πεδίου MS Access για να βεβαιωθείτε ότι οι καταχωρίσεις δεδομένων είναι ακριβείς

Ιδιότητες πεδίου MS Access για να βεβαιωθείτε ότι οι καταχωρίσεις δεδομένων είναι ακριβείς

Ανακαλύψτε τις Ιδιότητες πεδίου MS Access για να μειώσετε τα λάθη κατά την εισαγωγή δεδομένων και να διασφαλίσετε την ακριβή καταχώρηση πληροφοριών.

Πώς να κάνετε αυτόματη σύνοψη ενός εγγράφου του Word 2003

Πώς να κάνετε αυτόματη σύνοψη ενός εγγράφου του Word 2003

Ανακαλύψτε πώς να χρησιμοποιήσετε το εργαλείο αυτόματης σύνοψης στο Word 2003 για να συνοψίσετε εγγραφές γρήγορα και αποτελεσματικά.

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

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

Η συνάρτηση PROB στο Excel επιτρέπει στους χρήστες να υπολογίζουν πιθανότητες με βάση δεδομένα και πιθανότητες σχέσης, ιδανική για στατιστική ανάλυση.

Τι σημαίνουν τα μηνύματα σφάλματος επίλυσης στο Excel;

Τι σημαίνουν τα μηνύματα σφάλματος επίλυσης στο Excel;

Ανακαλύψτε τι σημαίνουν τα μηνύματα σφάλματος του Solver στο Excel και πώς να τα επιλύσετε, βελτιστοποιώντας τις εργασίες σας αποτελεσματικά.

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

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

Η συνάρτηση FREQUENCY στο Excel μετράει τις τιμές σε έναν πίνακα που εμπίπτουν σε ένα εύρος ή bin. Μάθετε πώς να την χρησιμοποιείτε για την κατανομή συχνότητας.