Φύλλο UnProtect VBA - Χρησιμοποιήστε τον κώδικα VBA για να αποπροστατεύσετε το φύλλο Excel

Πίνακας περιεχομένων

Φύλλο Unprotect του Excel VBA

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

Παραδείγματα

Παράδειγμα # 1

Η προστασία από το φύλλο είναι 99% απλούστερη από την προστασία τους. Χρειαζόμαστε απλώς τον κωδικό πρόσβασης για να προστατεύσουμε το φύλλο εργασίας.

Το πρώτο πράγμα που πρέπει να κάνουμε είναι να αναφέρουμε το όνομα του φύλλου εργασίας που θα προστατεύσουμε. Για παράδειγμα, εάν θέλετε να αποπροστατεύσετε το φύλλο με το όνομα "Δεδομένα πωλήσεων", τότε ο κώδικας VBA θα πρέπει να είναι έτσι.

Φύλλα εργασίας ("Δεδομένα πωλήσεων")

Στη συνέχεια, αποκτήστε πρόσβαση στη μέθοδο Unprotect.

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

Για να το ξεπεράσω, συνήθως βασίζομαι στη δήλωση μιας μεταβλητής VBA ως "Φύλλο εργασίας".

Κώδικας:

Sub Unpretect_Example1 () Dim Ws ως φύλλο εργασίας End Sub

Τώρα ορίστε τη δηλωμένη μεταβλητή στο αντίστοιχο φύλλο.

Κώδικας:

Sub Unpretect_Example1 () Dim Ws As Set Sheet Works Ws = Worksheets ("Data Sales") End Sub

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

Όπως μπορείτε να δείτε στην παραπάνω εικόνα, μπορούμε να έχουμε πρόσβαση σε όλες τις ιδιότητες και τις μεθόδους. Επιλέξτε τη μέθοδο "Unprotect" από τη λίστα IntelliSense.

Ζητάει τον κωδικό πρόσβασης για την προστασία από το Φύλλο. Έχω ορίσει τον κωδικό πρόσβασης ως "Excel @ 1234", οπότε θα δώσω τον ίδιο κωδικό πρόσβασης.

Αυτό θα αποπροστατεύσει το φύλλο εργασίας με το όνομα "Δεδομένα πωλήσεων".

Κώδικας:

Sub Unpretect_Example1 () Dim Ws As Set Sheet Sheets Ws = Worksheets ("Data Sales") Ws.Unprotect Password: = "Excel @ 1234" End Sub

Εάν δεν υπάρχει κωδικός πρόσβασης, τότε απλώς πρέπει να χρησιμοποιήσουμε τη μέθοδο "Unprotect" και να αγνοήσουμε την παράμετρο "Password".

Κώδικας:

Sub Unpretect_Example1 () Dim Ws As Worksheet Set Ws = Worksheets ("Data Sales") 'Αλλάξτε το όνομα του φύλλου εργασίας σύμφωνα με τις απαιτήσεις σας

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

Παράδειγμα # 2 - Αποπροστασία όλων των φύλλων Excel με ένα μόνο κλικ

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

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

Ο παρακάτω κώδικας θα περάσει σε όλα τα φύλλα εργασίας και θα αποπροστατεύσει το φύλλο.

Κώδικας:

Υπο Unpretect_Example2 () Dim Ws ως φύλλο εργασίας για κάθε Ws στο ActiveWorkbook.Wheheets Ws.Unprotect Password: = "Excel @ 1234" 'Αλλάξτε τον κωδικό πρόσβασης όπως αναφέρατε ενώ τα προστατεύετε. Επόμενο Ws End Sub

Παράδειγμα # 3 - Ειδικές καταστάσεις

Κατάσταση 1: Έχετε φανταστεί ποτέ ότι ο παρεχόμενος κωδικός πρόσβασης είναι λάθος. Όταν ο παρεχόμενος κωδικός πρόσβασης είναι λάθος, θα λάβουμε το σφάλμα χρόνου εκτέλεσης 1004:

Για να χειριστούμε αυτά τα σφάλματα, μπορούμε να χρησιμοποιήσουμε την επιλογή "On Error GoTo Label". Ο παρακάτω κώδικας είναι ένα παράδειγμα του ίδιου.

Κώδικας:

Sub Unpretect_Example3 () Dim Ws ως φύλλο εργασίας για κάθε Ws στο ActiveWorkbook. Φύλλα εργασίας σε σφάλμα GoTo Errormessage Ws.Unprotect Password: = "Excel @ 1234" 'Αλλάξτε τον κωδικό πρόσβασης όπως αναφέρατε ενώ τα προστατεύετε. Errormessage: MsgBox "Λάθος κωδικός πρόσβασης" Next Ws End Sub

Ο παραπάνω κωδικός θα εμφανίσει ένα ωραίο πλαίσιο μηνύματος που θα λέει, "Ο λανθασμένος κωδικός πρόσβασης"

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

Κατάσταση 3: Όταν το φύλλο προστατεύεται από κωδικό πρόσβασης, αλλά εάν δεν παρέχετε κωδικό πρόσβασης, τότε το VBA θα εμφανιστεί ως πλαίσιο εισαγωγής κωδικού πρόσβασης για να εισαγάγετε τον κωδικό πρόσβασης.

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

ενδιαφέροντα άρθρα...