Συμπτώματα

Κατά την εκτέλεση κώδικα που χρησιμοποιεί αυτοματοποίηση για τον έλεγχο του Microsoft Excel, ενδέχεται να παρουσιαστεί ένα από τα ακόλουθα σφάλματα: Στο Microsoft Excel 97 και σε νεότερες εκδόσεις του Excel, εμφανίζεται ένα από τα παρακάτω μηνύματα σφάλματος:

Μήνυμα σφάλματος 1

Σφάλμα χρόνου εκτέλεσης '1004': Η μέθοδος "<όνομα της μεθόδου>" του αντικειμένου "_Global" απέτυχε

Μήνυμα σφάλματος 2

Σφάλμα που ορίζεται από την εφαρμογή ή που ορίζεται από το αντικείμενο

Στο Microsoft Excel 95, λαμβάνετε ένα από τα ακόλουθα μηνύματα σφάλματος:

Μήνυμα σφάλματος 1

Σφάλμα χρόνου εκτέλεσης '-2147023174' Σφάλμα αυτοματοποίησης OLE

Μήνυμα σφάλματος 2

Σφάλμα χρόνου εκτέλεσης '462': Ο απομακρυσμένος υπολογιστής διακομιστή δεν υπάρχει ή δεν είναι διαθέσιμος.

Αιτία

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

Επίλυση

Για να επιλύσετε αυτό το πρόβλημα, τροποποιήστε τον κώδικα, ώστε κάθε κλήση σε ένα αντικείμενο, μέθοδο ή ιδιότητα του Excel να προσδιορίζεται με την κατάλληλη μεταβλητή αντικειμένου.

Κατάσταση

Αυτή η συμπεριφορά οφείλεται στη σχεδίαση.

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

Για να αυτοματοποιήσετε το Microsoft Excel, δημιουργείτε μια μεταβλητή αντικειμένου που συνήθως αναφέρεται στο αντικείμενο Εφαρμογή Excel ή στο αντικείμενο βιβλίου εργασίας του Excel. Στη συνέχεια, μπορείτε να ορίσετε άλλες μεταβλητές αντικειμένου ώστε να αναφέρονται σε ένα φύλλο εργασίας, μια περιοχή ή άλλα αντικείμενα στο μοντέλο αντικειμένου του Microsoft Excel. Όταν γράφετε κώδικα για να χρησιμοποιήσετε ένα αντικείμενο, μέθοδο ή ιδιότητα του Excel, θα πρέπει πάντα να προηγείτε την κλήση με την κατάλληλη μεταβλητή αντικειμένου. Εάν δεν το κάνετε, η Visual Basic δημιουργεί τη δική της αναφορά στο Excel. Αυτή η αναφορά μπορεί να προκαλέσει προβλήματα, όταν προσπαθείτε να εκτελέσετε τον κώδικα αυτοματισμού πολλές φορές. Σημειώστε ότι ακόμη και αν η γραμμή κώδικα αρχίζει με τη μεταβλητή αντικειμένου, μπορεί να γίνει μια κλήση σε ένα αντικείμενο, μέθοδο ή ιδιότητα του Excel στη μέση της γραμμής κώδικα της οποίας δεν προηγείται μια μεταβλητή αντικειμένου.Τα παρακάτω βήματα δείχνουν πώς μπορείτε να αναπαραγάγετε αυτό το πρόβλημα και πώς μπορείτε να διορθώσετε το πρόβλημα.

Βήματα για την αναπαραγωγή της συμπεριφοράς

  1. Ξεκινήστε ένα νέο έργο Standard EXE στη Visual Basic. Η φόρμα1 δημιουργείται από προεπιλογή.

  2. Στο μενού Έργο , κάντε κλικ στην επιλογή Αναφορές και, στη συνέχεια, επιλέξτε τη Βιβλιοθήκη αντικειμένων για την έκδοση του Excel που σκοπεύετε να αυτοματοποιήσετε.

  3. Τοποθετήστε ένα στοιχείο ελέγχου CommandButton στο Form1.

  4. Αντιγράψτε το ακόλουθο παράδειγμα κώδικα στο παράθυρο κώδικα της φόρμας1.

          Option Explicit
    
          Private Sub Command1_Click()
             Dim xlApp As Excel.Application
             Dim xlBook As Excel.Workbook
             Dim xlSheet As Excel.Worksheet
             Set xlApp = CreateObject("Excel.Application")
             Set xlBook = xlApp.Workbooks.Add
             Set xlSheet = xlBook.Worksheets("Sheet1")
             xlSheet.Range(Cells(1, 1), Cells(10, 2)).Value = "Hello"
             xlBook.Saved = True
             Set xlSheet = Nothing
             Set xlBook = Nothing
             xlApp.Quit
             Set xlApp = Nothing
          End Sub
    
  5. Στο μενού Εκτέλεση , κάντε κλικ στην επιλογή Έναρξη ή πατήστε το πλήκτρο F5 για να ξεκινήσετε το πρόγραμμα.

  6. Κάντε κλικ στο στοιχείο ελέγχου CommandButton . Δεν εμφανίζεται σφάλμα. Ωστόσο, έχει δημιουργηθεί μια αναφορά στο Excel και δεν έχει κυκλοφορήσει.

  7. Κάντε ξανά κλικ στο στοιχείο ελέγχου CommandButton . Παρατηρήστε ότι λαμβάνετε ένα από τα μηνύματα σφάλματος που αναφέρονται στην ενότητα "Συμπτώματα".Σημείωση Το μήνυμα σφάλματος παρουσιάζεται επειδή ο κώδικας αναφέρεται στη μέθοδο του κελιού χωρίς να προηγείται της κλήσης με το Μεταβλητή αντικειμένου xlSheet.

  8. Διακόψτε το έργο και αλλάξτε την ακόλουθη γραμμή κώδικα:

    xlSheet.Range(Cells(1,1),Cells(10,2)).Value = "Hello"
    

    Αλλάξτε τη γραμμή κώδικα ώστε να μοιάζει με την ακόλουθη γραμμή κώδικα.

    xlSheet.Range(xlSheet.Cells(1,1),xlSheet.Cells(10,2)).Value = "Hello"
    
  9. Εκτελέστε ξανά το πρόγραμμα. Παρατηρήστε ότι μπορείτε να εκτελέσετε τον κωδικό πολλές φορές χωρίς να λάβετε ένα μήνυμα σφάλματος.

Αναφορές

189618 Ενδέχεται να εμφανιστεί το μήνυμα σφάλματος "Σφάλμα χρόνου εκτέλεσης '-2147023174' (800706ba)" ή το σφάλμα "Σφάλμα χρόνου εκτέλεσης '462'" κατά την εκτέλεση κώδικα της Visual Basic που χρησιμοποιεί αυτοματοποίηση για τον έλεγχο Word  

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

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

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