Στο Excel, μπορεί να εργάζεστε σε δεδομένα που είναι τόσο ευαίσθητα που θα θέλετε να αποθηκεύετε κάθε φορά που αλλάζει ένα συγκεκριμένο κελί ή εύρος κελιών. Αυτή η μακροεντολή σάς επιτρέπει να ορίσετε μια περιοχή κελιών που, όταν αλλάξουν, αναγκάζουν το βιβλίο εργασίας να αποθηκεύσει.
Στο παράδειγμα που εμφανίζεται, θέλετε το βιβλίο εργασίας να αποθηκεύεται όταν γίνεται μια επεξεργασία σε οποιοδήποτε από τα κελιά της περιοχής C5:C16.
Η αλλαγή ενός κελιού στο C5:C16 αναγκάζει το βιβλίο εργασίας να αποθηκεύσει.
Πώς λειτουργεί η μακροεντολή
Το μυστικό αυτού του κώδικα είναι η μέθοδος Intersect. Επειδή δεν θέλετε να αποθηκεύσετε το φύλλο εργασίας όταν αλλάζει κάποιο παλιό κελί, χρησιμοποιείτε τη μέθοδο Intersect για να προσδιορίσετε εάν το κελί-στόχος (το κελί που άλλαξε) τέμνεται με το εύρος που καθορίζεται ως εύρος ενεργοποίησης (C5:C16 σε αυτήν την περίπτωση) .
Η μέθοδος Intersect επιστρέφει ένα από δύο πράγματα: ένα αντικείμενο Range που ορίζει την τομή μεταξύ των δύο δεδομένων περιοχών ή τίποτα. Στην ουσία, λοιπόν, πρέπει να ρίξετε το κελί-στόχο στη μέθοδο Intersect για να ελέγξετε την τιμή του Nothing. Σε αυτό το σημείο, μπορείτε να αποφασίσετε εάν θα αποθηκεύσετε το βιβλίο εργασίας.
Ιδιωτικό δευτερεύον φύλλο εργασίας_Αλλαγή (ByVal Στόχος ως εύρος)
'Βήμα 1: Τέμνεται το αλλαγμένο εύρος;
Αν το Intersect(Target, Range("C5:C16")) δεν είναι τίποτα τότε
'Βήμα 2: Εάν δεν υπάρχει διασταύρωση, βγείτε από τη διαδικασία
Έξοδος υπο
'Βήμα 3: Εάν υπάρχει διασταύρωση, αποθηκεύστε το βιβλίο εργασίας
Αλλού
ActiveWorkbook.Save
'Βήμα 4: Κλείστε τη δήλωση If
Τέλος εαν
End Sub
Στο Βήμα 1, απλώς ελέγχετε εάν το κελί-στόχος (το κελί που άλλαξε) βρίσκεται στην περιοχή που καθορίζεται από τη μέθοδο Intersect. Η τιμή του Nothing σημαίνει ότι το κελί-στόχος βρίσκεται εκτός του καθορισμένου εύρους.
Το βήμα 2 αναγκάζει τη μακροεντολή να σταματήσει και να βγει από τη διαδικασία εάν δεν υπάρχει τομή μεταξύ του κελιού στόχου και της καθορισμένης περιοχής.
Εάν υπάρχει διασταύρωση, το Βήμα 3 ενεργοποιεί τη μέθοδο Αποθήκευση του ενεργού βιβλίου εργασίας, αντικαθιστώντας την προηγούμενη έκδοση.
Στο Βήμα 4, απλά κλείνεις τη δήλωση If. Κάθε φορά που ξεκινάτε έναν έλεγχο If-Then-Else, πρέπει να τον κλείσετε με ένα αντίστοιχο End If.
Πώς να χρησιμοποιήσετε τη μακροεντολή
Για να εφαρμόσετε αυτήν τη μακροεντολή, πρέπει να την αντιγράψετε και να την επικολλήσετε στο παράθυρο κώδικα συμβάντος Worksheet_Change. Η τοποθέτηση της μακροεντολής εδώ της επιτρέπει να εκτελείται κάθε φορά που κάνετε οποιαδήποτε αλλαγή στο φύλλο:
Ενεργοποιήστε το Visual Basic Editor πατώντας Alt+F11.
Στο παράθυρο του έργου, βρείτε το όνομα του έργου/του βιβλίου εργασίας σας και κάντε κλικ στο σύμβολο συν δίπλα του για να δείτε όλα τα φύλλα.
Κάντε κλικ στο φύλλο από το οποίο θέλετε να ενεργοποιήσετε τον κωδικό.
Στην αναπτυσσόμενη λίστα Συμβάν, επιλέξτε το συμβάν Αλλαγή.
Πληκτρολογήστε ή επικολλήστε τον κωδικό στη μονάδα που δημιουργήθηκε πρόσφατα, αλλάζοντας τη διεύθυνση εύρους ανάλογα με τις ανάγκες σας.
Εισαγάγετε τον κωδικό σας στο συμβάν Αλλαγή φύλλου εργασίας.