Αναφορά ενός φύλλου εργασίας με μεταβλητή αντικειμένου - Συμβουλές Excel

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

Ο Joe προσπαθεί να βρει ένα σφάλμα σε μια νέα μακροεντολή που μόλις έγραψε.

Η γραμμή που εκχωρεί το NextRow επιστρέφει ένα σφάλμα που λέει "Μεταβλητή αντικειμένου ή με μη μεταβλητή μπλοκ αντικειμένου".

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

OrigName = ActiveSheet.Name Worksheets(OrigName).Copy

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

Dim WSO as Worksheet Set WSO = Activesheet WSO.Copy

Το κόλπο, ωστόσο, είναι ότι όταν έχετε μια μεταβλητή αντικειμένου, πρέπει να αντιστοιχιστεί με τη λέξη-κλειδί Ορισμός. Εάν αποτύχετε να βάλετε το σετ στον κώδικα, θα λάβετε το κάπως μη διαισθητικό "Μεταβλητή αντικειμένου ή με μη μεταβλητή μπλοκ" Ο Joe πρέπει απλά να προηγηθεί της μεταβλητής ανάθεσης με τη λέξη Set

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