Μια σχετική αναφορά σε μια μακροεντολή Excel σημαίνει σχετική με το τρέχον ενεργό κελί. Επομένως, να είστε προσεκτικοί με την επιλογή ενεργού κελιού σας — τόσο όταν καταγράφετε τη σχετική μακροεντολή αναφοράς όσο και όταν την εκτελείτε.
Αρχικά, ανοίξτε το Sample File.xlsx διαθέσιμο στο διαδίκτυο . Στη συνέχεια, χρησιμοποιήστε τα ακόλουθα βήματα για να καταγράψετε μια σχετική μακροεντολή αναφοράς:
Στην καρτέλα Προγραμματιστής, επιλέξτε την επιλογή Χρήση σχετικών αναφορών.
Καταγραφή μακροεντολής με σχετικές αναφορές.
Βεβαιωθείτε ότι το κελί A1 είναι επιλεγμένο.
Στην καρτέλα Προγραμματιστής, επιλέξτε Εγγραφή μακροεντολής.
Ονομάστε τη μακροεντολή AddTotalRelative.
Επιλέξτε Αυτό το βιβλίο εργασίας για τη θέση αποθήκευσης.
Κάντε κλικ στο OK για να ξεκινήσει η εγγραφή.
Επιλέξτε το κελί A16 και πληκτρολογήστε Σύνολο στο κελί.
Επιλέξτε το πρώτο κενό κελί στη στήλη D (D16) και πληκτρολογήστε = COUNTA(D2:D15).
Στην καρτέλα Προγραμματιστής, κάντε κλικ στο Διακοπή εγγραφής για να σταματήσετε την εγγραφή της μακροεντολής.
Σε αυτό το σημείο, έχετε καταγράψει δύο μακροεντολές. Αφιερώστε λίγο χρόνο για να εξετάσετε τον κώδικα για τη μακροεντολή που μόλις δημιουργήσατε επιλέγοντας Μακροεντολές στην καρτέλα Προγραμματιστής για να ανοίξετε το πλαίσιο διαλόγου Μακροεντολή. Επιλέξτε τη μακροεντολή AddTotalRelative και κάντε κλικ στην Επεξεργασία.
Και πάλι, ανοίγει το Visual Basic Editor και σας δείχνει τον κώδικα που γράφτηκε κατά την εγγραφή της μακροεντολής σας. Αυτή τη φορά, ο κώδικάς σας μοιάζει με το εξής:
Sub AddTotalRelative()
ActiveCell.Offset(15, 0).Range("A1").Επιλέξτε
ActiveCell.FormulaR1C1 = "Σύνολο"
ActiveCell.Offset(0, 3).Range("A1").Επιλέξτε
ActiveCell.FormulaR1C1 = "=COUNTA(R[-14]C:R[-1]C)"
End Sub
Πρώτα σημειώστε ότι ο κώδικας δεν περιέχει αναφορές σε συγκεκριμένες περιοχές κελιών (εκτός από το σημείο εκκίνησης, A1). Σημειώστε ότι σε αυτήν τη μακροεντολή, το Excel χρησιμοποιεί την ιδιότητα Offset του ενεργού κελιού. Αυτή η ιδιότητα λέει στον κέρσορα να μετακινήσει έναν ορισμένο αριθμό κελιών προς τα πάνω ή προς τα κάτω και έναν συγκεκριμένο αριθμό κελιών αριστερά ή δεξιά.
Σε αυτήν την περίπτωση, ο κωδικός ιδιότητας Offset λέει στο Excel να μετακινήσει 15 σειρές προς τα κάτω και 0 στήλες απέναντι από το ενεργό κελί (A1). Επειδή η μακροεντολή καταγράφηκε χρησιμοποιώντας σχετική αναφορά, το Excel δεν θα επιλέξει ρητά ένα συγκεκριμένο κελί όπως έκανε κατά την εγγραφή μιας μακροεντολής απόλυτης αναφοράς.
Για να δείτε αυτήν τη μακροεντολή σε δράση, διαγράψτε τη σειρά Σύνολο και για τους δύο πίνακες και κάντε τα εξής:
Επιλέξτε το κελί A1.
Στην καρτέλα Προγραμματιστής, επιλέξτε Μακροεντολές.
Βρείτε και επιλέξτε τη μακροεντολή AddTotalRelative.
Κάντε κλικ στο κουμπί Εκτέλεση.
Επιλέξτε το κελί F1.
Στην καρτέλα Προγραμματιστής, επιλέξτε Μακροεντολές.
Βρείτε και επιλέξτε τη μακροεντολή AddTotalRelative.
Κάντε κλικ στο κουμπί Εκτέλεση.
Σημειώστε ότι αυτή η μακροεντολή, σε αντίθεση με την προηγούμενη μακροεντολή σας, λειτουργεί και στα δύο σύνολα δεδομένων. Επειδή η μακροεντολή εφαρμόζει τα σύνολα σε σχέση με το τρέχον ενεργό κελί, τα σύνολα εφαρμόζονται σωστά.
Για να λειτουργήσει αυτή η μακροεντολή, πρέπει απλώς να το διασφαλίσετε