Bei Microsoft anmelden
Melden Sie sich an, oder erstellen Sie ein Konto.
Hallo,
Wählen Sie ein anderes Konto aus.
Sie haben mehrere Konten.
Wählen Sie das Konto aus, mit dem Sie sich anmelden möchten.

Problembeschreibung

Beim Ausführen von Code, der Automation zum Steuern von Microsoft Excel verwendet, kann einer der folgenden Fehler auftreten:

In Microsoft Excel 97 und höheren Excel-Versionen wird eine der folgenden Fehlermeldungen angezeigt:

Fehlermeldung 1

Laufzeitfehler "1004":
Fehler bei methode '<name of method>' of object '_Global'

Fehlermeldung 2

Anwendungs- oder objektdefinierter Fehler.

In Microsoft Excel 95 erhalten Sie eine der folgenden Fehlermeldungen:

Fehlermeldung 1

Laufzeitfehler "-2147023174"
OLE-Automatisierungsfehler

Fehlermeldung 2

Laufzeitfehler "462":
Der Remoteservercomputer ist nicht vorhanden oder nicht verfügbar.

Ursache

Visual Basic hat aufgrund einer Codezeile, die ein Excel-Objekt, eine Methode oder eine Eigenschaft aufruft, ohne das Element mit einer Excel-Objektvariablen zu qualifizieren, einen Verweis auf Excel eingerichtet. Visual Basic gibt diesen Verweis erst wieder frei, wenn Sie das Programm beenden. Dieser fehlerhafte Verweis beeinträchtigt automatisierungscode, wenn der Code mehr als einmal ausgeführt wird.

Lösung

Um dieses Problem zu beheben, ändern Sie den Code so, dass jeder Aufruf eines Excel-Objekts, einer Methode oder einer Eigenschaft mit der entsprechenden Objektvariablen qualifiziert wird.

Status

Es handelt sich hierbei um ein beabsichtigtes Verhalten.

Weitere Informationen

Um Microsoft Excel zu automatisieren, richten Sie eine Objektvariable ein, die in der Regel auf das Excel Application-Objekt oder das Excel Workbook-Objekt verweist. Andere Objektvariablen können dann so festgelegt werden, dass sie auf ein Arbeitsblatt, einen Bereich oder andere Objekte im Microsoft Excel-Objektmodell verweisen. Wenn Sie Code schreiben, um ein Excel-Objekt, eine Methode oder eine Excel-Eigenschaft zu verwenden, sollten Sie dem Aufruf immer die entsprechende Objektvariable vorangehen. Andernfalls richtet Visual Basic einen eigenen Verweis auf Excel ein. Dieser Verweis kann Probleme verursachen, wenn Sie versuchen, den Automatisierungscode mehrmals auszuführen. Beachten Sie, dass selbst wenn die Codezeile mit der Objektvariablen beginnt, ein Aufruf eines Excel-Objekts, einer Methode oder einer Eigenschaft in der Mitte der Codezeile erfolgen kann, der keine Objektvariable vorangestellt ist.

Die folgenden Schritte veranschaulichen, wie Sie dieses Problem reproduzieren und das Problem beheben.

Schritte zum Reproduzieren des Verhaltens

  1. Starten Sie ein neues Standard EXE-Projekt in Visual Basic. Form1 wird standardmäßig erstellt.

  2. Klicken Sie im Menü Projekt auf Verweise, und überprüfen Sie dann die Objektbibliothek für die Version von Excel, die Sie automatisieren möchten.

  3. Platzieren Sie ein CommandButton-Steuerelement auf Form1.

  4. Kopieren Sie das folgende Codebeispiel in das Codefenster von Form1.

          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. Klicken Sie im Menü Ausführen auf Start, oder drücken Sie F5, um das Programm zu starten.

  6. Klicken Sie auf das CommandButton-Steuerelement . Es tritt kein Fehler auf. Es wurde jedoch ein Verweis auf Excel erstellt und nicht freigegeben.

  7. Klicken Sie erneut auf das CommandButton-Steuerelement . Beachten Sie, dass Sie eine der Fehlermeldungen erhalten, die im Abschnitt "Symptome" erläutert werden.

    Hinweis Die Fehlermeldung tritt auf, weil der Code auf die -Methode der Zelle verweist, ohne dem Aufruf mit dem
    xlSheet-Objektvariable.

  8. Beenden Sie das Projekt, und ändern Sie die folgende Codezeile:

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

    Ändern Sie die Codezeile so, dass sie der folgenden Codezeile ähnelt.

    xlSheet.Range(xlSheet.Cells(1,1),xlSheet.Cells(10,2)).Value = "Hello"
    
  9. Führen Sie das Programm erneut aus. Beachten Sie, dass Sie den Code mehrmals ausführen können, ohne eine Fehlermeldung zu erhalten.

Informationsquellen

189618 Möglicherweise erhalten Sie die Fehlermeldung "Laufzeitfehler '-2147023174' (800706ba)" oder den "Laufzeitfehler '462'", wenn Sie Visual Basic-Code ausführen, der Automation verwendet, um Word
 

Benötigen Sie weitere Hilfe?

Möchten Sie weitere Optionen?

Erkunden Sie die Abonnementvorteile, durchsuchen Sie Trainingskurse, erfahren Sie, wie Sie Ihr Gerät schützen und vieles mehr.

In den Communities können Sie Fragen stellen und beantworten, Feedback geben und von Experten mit umfassendem Wissen hören.

War diese Information hilfreich?

Wie zufrieden sind Sie mit der Sprachqualität?
Was hat Ihre Erfahrung beeinflusst?
Wenn Sie auf "Absenden" klicken, wird Ihr Feedback zur Verbesserung von Produkten und Diensten von Microsoft verwendet. Ihr IT-Administrator kann diese Daten sammeln. Datenschutzbestimmungen.

Vielen Dank für Ihr Feedback!

×