Φύλλα εργασίας VBA Protect / Unprotect

Αυτό το σεμινάριο θα σας διδάξει τα πάντα σχετικά με την προστασία του φύλλου εργασίας Excel στο VBA - Πώς να προστατεύσετε ή να προστατέψετε τα φύλλα εργασίας στο Excel.

Απροστασία του φύλλου εργασίας Excel χωρίς κωδικό πρόσβασης

Για να καταργήσετε την προστασία ενός φύλλου εργασίας που δεν προστατεύεται με κωδικό πρόσβασης, χρησιμοποιήστε αυτήν την απλή γραμμή κώδικα:

1 Φύλλα εργασίας ("Φύλλο1"). Απροστασία

Απροστασία φύλλου εργασίας Excel με κωδικό πρόσβασης

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

1 Φύλλα εργασίας ("Φύλλο1"). Απροστασία "Κωδικός πρόσβασης"

Μη προστατευμένο φύλλο - Χαμένος κωδικός πρόσβασης

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

Προστατέψτε τα φύλλα εργασίας

Η προστασία φύλλου εργασίας σας επιτρέπει να αποκλείσετε την επεξεργασία ορισμένων πτυχών του φύλλου.

Αυτό το μενού βρίσκεται στο Αρχική σελίδα> Μορφή> Προστασία φύλλου ή κάνοντας δεξί κλικ στο όνομα της καρτέλας Φύλλο:

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

Μπορείτε να κλειδώσετε τα κελιά επιλέγοντάς τα και ανοίγοντας το Καρτέλα προστασίας απο Μενού μορφοποίησης κελιών (CTRL + 1).

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

Προστατέψτε το φύλλο εργασίας - χωρίς κωδικό πρόσβασης

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

1 Φύλλα εργασίας ("Φύλλο1"). Προστατέψτε

Φύλλο εργασίας προστασίας - Προστασία με κωδικό πρόσβασης

1 Φύλλα εργασίας ("Sheet1"). Προστατέψτε το "Password"

Προστασία ρυθμίσεων φύλλου εργασίας

Τα παραπάνω παραδείγματα προστατεύουν τα Φύλλα εργασίας με τις τυπικές ρυθμίσεις προστασίας. Αντ 'αυτού, ίσως θελήσετε να προσαρμόσετε το προστατευόμενο:

12345 Φύλλα εργασίας ("Φύλλο1"). Προστασία κωδικού πρόσβασης: = strPassword, DrawingObjects: = True, Περιεχόμενα: = True, Σενάρια: = True, _UserInterfaceOnly: = True, AllowFormattingCells: = False, AllowFormattingColumns: = False, _AllowFormattingRows: = False, AllowInsertingColumns: = False, AllowInsertingRows: = False, _AllowInsertingHyperlinks: = False, AllowDeletingColumns: = False, AllowDeletingRows: = False, _AllowSorting: = False, AllowFiltering: = False, AllowUsingPivotTables: = False

Αντί να χρησιμοποιήσετε την παραπάνω σύνταξη, σας συνιστώ να ηχογραφήσετε μια μακροεντολή με τις επιθυμητές ρυθμίσεις (επιλέξτε με το μενού Προστασία φύλλου εργασίας παραπάνω) και να αντιγράψετε + επικολλήσετε τον εγγεγραμμένο κώδικα στη διαδικασία σας.

Προστατευτικό φύλλο - Επιτρέψτε στο VBA να κάνει αλλαγές

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

123456789 Sub Edit_Sheet1 ()«Μη προστατευμένο φύλλο1Φύλλα εργασίας ("Φύλλο1"). Απροστασία«Κάνε κάτι στο φύλλο 1«Προστασία φύλλου 1Φύλλα εργασίας ("Φύλλο1"). ΠροστατέψτεΤέλος υπο

Ωστόσο, είναι εύκολο να ξεχάσετε να προστατέψετε ή/και να προστατεύσετε εκ νέου τα φύλλα εργασίας σας. Αυτό μπορεί να αυξήσει την πιθανότητα σφάλματος κωδικοποίησης.

Αντ 'αυτού, μπορείτε να χρησιμοποιήσετε τη ρύθμιση UserInterFaceOnly. Όταν είναι TRUE, τα φύλλα εργασίας θα προστατεύονται ΜΟΝΟ από τους χρήστες, ΟΧΙ από το VBA.Ο κώδικας VBA θα είναι ελεύθερος να επεξεργαστεί το φύλλο εργασίας όπως και αν ήταν ξεκλειδωμένος.

Δύο σημαντικά σημεία για το UserInterFaceOnly:

  • Αυτή η ρύθμιση δεν είναι διαθέσιμη από το μενού Προστασία φύλλου εργασίας (φαίνεται παραπάνω). Είναι μια ρύθμιση που πρέπει να οριστεί σε VBA.
  • Η ρύθμιση δεν αποθηκεύεται όταν κλείνετε ένα βιβλίο εργασίας. Πρέπει να επαναπροσδιορίζεται κάθε φορά που ανοίγει ένα βιβλίο εργασίας.

Έτσι, για να ορίσετε την ιδιότητα UserInterFaceOnly, θα πρέπει να τοποθετήσετε την ακόλουθη διαδικασία συμβάντος Workbook_Open στη λειτουργική μονάδα ThisWorkbook:

1234567 Private Sub Workbook_Open ()Dim ws Ως φύλλο εργασίαςΓια κάθε ws Στο ThisWorkbook.Worksheetsws.Protect UserInterfaceOnly: = TrueΕπόμενο wsΤέλος υπο

Το Workbook_Open είναι μια ειδική διαδικασία συμβάντος που εκτελείται κάθε φορά που το βιβλίο εργασίας είναι ανοιχτό. Πρέπει να τοποθετηθεί στην ενότητα ThisWorkbook. Εναλλακτικά, μπορείτε να χρησιμοποιήσετε τη διαδικασία συμβάντος Auto_Open (δεν καλύπτεται εδώ).

Καταργήστε την προστασία όλων των φύλλων μακροεντολής

Αυτή η μακροεντολή θα καταργήσει την προστασία όλων των φύλλων σε ένα βιβλίο εργασίας:

123456789 «Απροστασία όλων των φύλλων εργασίαςΥπο UnProtectAllSheets ()Dim ws Ως φύλλο εργασίαςΓια κάθε ws σε φύλλα εργασίαςws.Απροστασία "κωδικού πρόσβασης"Επόμενο wsΤέλος υπο

Προστατεύστε τη μακροεντολή όλων των φύλλων

Αυτή η μακροεντολή θα προστατεύσει όλα τα φύλλα σε ένα βιβλίο εργασίας:

123456789 «Προστατέψτε όλα τα φύλλα εργασίαςSub ProtectAllSheets ()Dim ws Ως φύλλο εργασίαςΓια κάθε ws σε φύλλα εργασίαςws.Προστασία "κωδικού πρόσβασης"Επόμενο wsΤέλος υπο

Θα βοηθήσει στην ανάπτυξη του τόπου, μοιράζονται τη σελίδα με τους φίλους σας

wave wave wave wave wave