Συμπτώματα

Όταν χρησιμοποιείτε την ιδιότητα location ή τη θέση. διεύθυνση κατακόρυφης ή οριζόντιας αλλαγής σελίδας σε μια μακροεντολή της Microsoft Visual Basic for Applications, ενδέχεται να λάβετε το ακόλουθο μήνυμα σφάλματος:

Σφάλμα χρόνου εκτέλεσης ' 9 ': Δείκτης εκτός περιοχής

Αιτία

Αυτό το πρόβλημα ενδέχεται να προκύψει εάν ισχύουν οι ακόλουθες συνθήκες:

  • Το ενεργό κελί βρίσκεται επάνω από την οριζόντια αλλαγή σελίδας ή στα αριστερά της κατακόρυφης αλλαγής σελίδας στην οποία αναφέρεται το ευρετήριο HPageBreaks ή VPageBreaks .

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

  • Μπορείτε να χρησιμοποιήσετε μια μακροεντολή της Visual Basic for Applications στο Microsoft Excel παρόμοιο με τον ακόλουθο κώδικα:

    Sub TestHorizontal()    ActiveSheet.Range("CZ1000").Value = 1    MsgBox ActiveSheet.HPageBreaks.Count    MsgBox ActiveSheet.HPageBreaks(1).Location.Address    MsgBox ActiveSheet.HPageBreaks(2).Location.AddressEnd Sub Sub TestVertical()    ActiveSheet.Range("CZ1000").Value = 1    MsgBox ActiveSheet.VPageBreaks.Count    MsgBox ActiveSheet.VPageBreaks(1).Location.Address    MsgBox ActiveSheet.VPageBreaks(2).Location.Address    MsgBox ActiveSheet.VPageBreaks(3).Location.AddressEnd Sub

Λύση

Η Microsoft παρέχει παραδείγματα προγραμματισμού μόνο για επεξήγηση, χωρίς καμία εγγύηση ρητή ή σιωπηρή. Αυτό περιλαμβάνει, μεταξύ άλλων, τις σιωπηρές εγγυήσεις εμπορευσιμότητας ή καταλληλότητας για συγκεκριμένο σκοπό. Αυτό το άρθρο προϋποθέτει ότι είστε εξοικειωμένοι με τη γλώσσα προγραμματισμού που επιδεικνύεται και με τα εργαλεία που χρησιμοποιούνται για τη δημιουργία και τον εντοπισμό σφαλμάτων διαδικασιών. Οι μηχανικοί υποστήριξης της Microsoft μπορούν να σας εξηγήσουν τη λειτουργικότητα μιας συγκεκριμένης διαδικασίας, αλλά δεν θα τροποποιήσουν αυτά τα παραδείγματα για να παρέχουν πρόσθετες λειτουργίες ή να δημιουργήσουν διαδικασίες για να καλύψουν τις συγκεκριμένες απαιτήσεις σας. Για να αποφύγετε αυτό το πρόβλημα, προσθέστε κώδικα για να επιλέξετε το τελευταίο κελί που χρησιμοποιείται στο φύλλο εργασίας, πριν ο κώδικας χρησιμοποιήσει την ιδιότητα location για οριζόντιες ή κατακόρυφες αλλαγές σελίδας. Για παράδειγμα, χρησιμοποιήστε τον παρακάτω κώδικα για να επιλέξετε το τελικό κελί, χρησιμοποιήστε την ιδιότητα location και, στη συνέχεια, επιλέξτε ξανά το αρχικό ενεργό κελί:

Sub CheckPageBreaks()    'Set object "currcell" equal to active cell.    Set currcell = ActiveCell        'Select the last cell on the worksheet that has data.    Range("IV65536").Select        'Include code with Location property here.    x = ActiveSheet.HPageBreaks(2).Location.Address    MsgBox x    'Example sets x equal to address of second horizontal page break.    'Then message box displays the address of the page break.        'Select original active cell.    currcell.SelectEnd Sub

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

Application.ScreenUpdating = False

για να αποτρέψετε την επανασχεδίαση οθόνης, το πρόβλημα εξακολουθεί να εμφανίζεται.

Κατάσταση

Η Microsoft έχει επιβεβαιώσει ότι πρόκειται για ένα πρόβλημα στα προϊόντα της Microsoft που παρατίθενται στην ενότητα "ισχύει για".

Περισσότερες πληροφορίες

Εάν χρησιμοποιείτε τη μέθοδο Count με την ιδιότητα VPageBreaks ή HPageBreaks , ενδέχεται να λάβετε το αποτέλεσμα μηδέν. Αυτό συμβαίνει υπό τις συνθήκες που παρατίθενται στην ενότητα "αιτία". Εάν μια αλλαγή σελίδας είναι ορατή, η μέθοδος Count μπορεί να δώσει τη σωστή απάντηση. Η μέθοδος Count για κατακόρυφες ή οριζόντιες αλλαγές σελίδας μπορεί να παρέχει το αναμενόμενο αποτέλεσμα εάν μια αλλαγή σελίδας βρίσκεται κοντά στο ορατό τμήμα του παραθύρου του βιβλίου εργασίας. Η λύση που δόθηκε νωρίτερα μπορεί να χρησιμοποιηθεί για να αποκτήσετε την αναμενόμενη καταμέτρηση. Οι αλλαγές σελίδας που βρίσκονται στα δεξιά του παραθύρου του βιβλίου εργασίας ή κάτω από το παράθυρο του βιβλίου εργασίας μπορεί να ενεργοποιήσουν τη μέθοδο καταμέτρησης ώστε να λειτουργεί και αυτή η αλλαγή σελίδας να βρίσκεται, εάν η απόσταση από το παράθυρο στην αλλαγή σελίδας είναι μικρότερη από το ήμισυ της απόστασης μεταξύ των αλλαγών σελίδας.

Αναφορές

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

213637 Τρόπος χρήσης του σφάλματος "σφάλμα" για το χειρισμό σφαλμάτων σε μια μακροεντολή

Χρειάζεστε περισσότερη βοήθεια;

Θέλετε περισσότερες επιλογές;

Εξερευνήστε τα πλεονεκτήματα της συνδρομής, περιηγηθείτε σε εκπαιδευτικά σεμινάρια, μάθετε πώς μπορείτε να προστατεύσετε τη συσκευή σας και πολλά άλλα.

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