Ισχύει για
Office Products

Συμπτώματα

Όταν εκτελείτε κώδικα της Microsoft Visual Basic που χρησιμοποιεί αυτοματοποίηση για τον έλεγχο της Microsoft Word, ενδέχεται να λάβετε ένα από τα ακόλουθα μηνύματα σφάλματος: Μήνυμα σφάλματος 1

Σφάλμα χρόνου εκτέλεσης '-2147023174' (800706ba) Σφάλμα αυτοματισμού

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

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

Αιτία

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

Επίλυση

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

Κατάσταση

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

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

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

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

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

  2. Κάντε κλικ στην επιλογή Αναφορές από το μενού Έργο και, στη συνέχεια, κάντε κλικ σε μία από τις ακόλουθες επιλογές:

    • Για το Office Word 2007, κάντε κλικ στην επιλογή Βιβλιοθήκη αντικειμένων Microsoft Word 12.0

    • Για Word 2003, κάντε κλικ στην επιλογή Βιβλιοθήκη αντικειμένων Microsoft Word 11.0

    • Για Word 2003, κάντε κλικ στην επιλογή Βιβλιοθήκη αντικειμένων microsoft Word 10.0

    • Για Word 2000, κάντε κλικ στην επιλογή Βιβλιοθήκη αντικειμένων microsoft Word 9.0.

    • Για Word 97, κάντε κλικ στην επιλογή Βιβλιοθήκη αντικειμένων Microsoft Word 8.0.

  3. Τοποθετήστε ένα κουμπί CommandButton στο Form1.

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

          Option Explicit
    
          Private Sub Command1_Click()
             Dim oWord As Word.Application
             Dim oDoc As Word.Document
             Dim oRange as Word.Range
    
             Set oWord = CreateObject("Word.Application")
             With oWord
                 .Visible = True
                 .Activate
                 .WindowState = wdWindowStateNormal
             End With
    
             Set oDoc = oWord.Documents.Add
             MsgBox "Document open", vbMsgBoxSetForeground
             With oDoc
                 .PageSetup.LeftMargin = InchesToPoints(1.25)
             End With
    
             ' This example inserts text at the end of section one.
             Set oRange = ActiveDocument.Sections(1).Range
             With oRange
                 .MoveEnd Unit:=wdCharacter, Count:= -1
                 .Collapse Direction:=wdCollapseEnd
                 .InsertParagraphAfter
                 .InsertAfter "End of section."
             End With
    
             With oDoc
                 .Saved = True
             End With
    
             Set oRange = Nothing
             Set oDoc = Nothing
             oWord.Quit
             Set oWord = Nothing
          End Sub
    
  5. Στο μενού Εκτέλεση , κάντε κλικ στην Έναρξη ή πατήστε το πλήκτρο F5 για να ξεκινήσετε το πρόγραμμα.

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

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

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

    .PageSetup.LeftMargin = InchesToPoints(1.25)
    

    -Να-  

    .PageSetup.LeftMargin = oWord.InchesToPoints(1.25)
    
  9. Εκτελέστε ξανά το πρόγραμμα. Στη συνέχεια, κάντε κλικ στο κουμπί CommandButton. Δεν εμφανίζεται σφάλμα.

  10. Κάντε κλικ στο κουμπί CommandButton ξανά και σημειώστε ότι λαμβάνετε το σφάλμα.Σημείωση Το σφάλμα παρουσιάζεται επειδή ο κώδικας αναφέρεται στο αντικείμενο περιοχής της ενότητας ActiveDocument, χωρίς να προηγείται της κλήσης με τη μεταβλητή αντικειμένου oWord.

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

    Set oRange = ActiveDocument.Sections(1).Range
    

    -Να-  

    Set oRange = oWord.ActiveDocument.Sections(1).Range
    
  12. Εκτελέστε ξανά το πρόγραμμα. Λάβετε υπόψη ότι μπορείτε να εκτελέσετε τον κωδικό πολλές φορές χωρίς σφάλμα.

Όταν δημιουργείτε ένα έργο της Visual Basic που αυτοματοποιεί Word, εάν το έργο σας έχει μια αναφορά στη Βιβλιοθήκη αντικειμένων microsoft Word, δείγμα κώδικα για τα αντικείμενα, τις μεθόδους και τις ιδιότητες του μοντέλου αντικειμένων Word είναι διαθέσιμο από το αρχείο της Βοήθειας Word. Όταν ο δρομέας βρίσκεται πάνω από μια λέξη-κλειδί στον κώδικά σας, θα δείτε οποιοδήποτε κείμενο της Βοήθειας που ισχύει πατώντας το πλήκτρο F1.Το δείγμα κώδικα στο θέμα της Βοήθειας θα είναι ο κωδικός Word Visual Basic for Applications της Microsoft. Δεν θα εμφανίζει τις αναφορές αντικειμένων που απαιτεί ο κώδικας της Visual Basic. Θα πρέπει να προσθέσετε τα προσδιοριστικά ανάλογα με την περίπτωση.

Αναφορές

Για περισσότερες πληροφορίες, ανατρέξτε στα ακόλουθα άρθρα στη Γνωσιακή βάση της Microsoft:

178510 PRB: Η μέθοδος αυτοματοποίησης αντικειμένου "_Global" απέτυχε

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

Επισκόπηση μοντέλου αντικειμένου Word

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

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

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