Φύλλο UnProtect VBA | Χρησιμοποιήστε τον κώδικα VBA για να αποπροστατεύσετε το φύλλο Excel
Φύλλο Unprotect του Excel VBA
Υπάρχουν καταστάσεις όπου προστατεύουμε τα φύλλα εργασίας μας για να το αποτρέψουμε από το χρήστη από το χειρισμό των φύλλων εργασίας. Ενώ προστατεύουμε το φύλλο εργασίας διατηρούμε συνήθως τον ίδιο κωδικό πρόσβασης. Σε αυτό το άρθρο, θα σας δείξουμε τον τρόπο να αποπροστατεύσετε το φύλλο χρησιμοποιώντας κωδικοποίηση VBA.
Παραδείγματα
Μπορείτε να κατεβάσετε αυτό το πρότυπο VBA Unprotect Sheet Excel εδώ - Πρότυπο VBA Unprotect Sheet ExcelΠαράδειγμα # 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 Works 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 με ένα μόνο κλικ
Έχουμε δει πώς να προστατεύσουμε το συγκεκριμένο φύλλο εργασίας. Φανταστείτε ότι έχετε πολλά φύλλα εργασίας και όλα τα φύλλα εργασίας προστατεύονται με τον ίδιο κωδικό πρόσβασης, τότε δεν μπορούμε να διατηρήσουμε ξεχωριστά τη σύνταξη κωδικών για κάθε φύλλο εργασίας.
Σε αυτές τις περιπτώσεις, πρέπει να χρησιμοποιήσουμε βρόχους για να περιηγηθούμε στη συλλογή του αντικειμένου φύλλου εργασίας και να τα προστατεύσουμε με ευκολία.
Ο παρακάτω κώδικας θα περάσει σε όλα τα φύλλα εργασίας και θα αποπροστατεύσει το φύλλο.
Κώδικας:
Sub Unpretect_Example2 () Dim Ws ως φύλλο εργασίας για κάθε Ws στο ActiveWorkbook.Wheheorks 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 χωρίς να εμφανίσει τίποτα, εκτός εάν υπάρχει κάποιο πλαίσιο μηνύματος χρήστη.