Friday, December 8, 2023

FEHLER: Fehler „Altes Format oder ungültige Typbibliothek“ beim Automatisieren von Excel – Microsoft-Support

Symptome

Wenn Sie Microsoft Excel mit Microsoft Visual Basic .NET, Microsoft Visual C# .NET oder Microsoft Visual C++ automatisieren, erhalten Sie beim Aufruf bestimmter Methoden möglicherweise die folgende Fehlermeldung:

Fehler: 0x80028018 (-2147647512)
Beschreibung: Altes Format oder ungültige Typbibliothek

Ursache

Sie erhalten diesen Fehler beim Aufruf einer Excel-Methode, wenn die folgenden Bedingungen erfüllt sind:

  • Die Methode erfordert eine LCID (Locale Identifier).

  • Sie führen eine englische Version von Excel aus. Die regionalen Einstellungen des Computers sind jedoch für eine nicht-englische Sprache konfiguriert.

Wenn auf dem Clientcomputer die englische Version von Excel ausgeführt wird und das Gebietsschema für den aktuellen Benutzer für eine andere Sprache als Englisch konfiguriert ist, versucht Excel, das Sprachpaket für die konfigurierte Sprache zu finden. Wenn das Sprachpaket nicht gefunden wird, wird der Fehler gemeldet.

Problemumgehung

Um dieses Problem zu umgehen, können Sie eine der folgenden Methoden verwenden:

  • Installieren Sie das Multilingual User Interface Pack für Ihre Office-Version.

  • Führen Sie die Excel-Methode oder -Eigenschaft mithilfe von InvokeMember aus, damit Sie CultureInfo für den Aufruf angeben können. Der folgende Code veranschaulicht beispielsweise, wie Sie die Add-Methode des Workbooks-Objekts mit „en-US" als CultureInfo aufrufen können:

     oApp als neues Excel.Application() dimmen
    oApp.Visible = True
    oApp.UserControl = True
    Dim oBooks As Object = oApp.Workbooks
    Dim ci As System.Globalization.CultureInfo = New System.Globalization.CultureInfo("en-US")
    oBooks.GetType().InvokeMember("Add", Reflection.BindingFlags.InvokeMethod, Nothing, oBooks, Nothing, ci)
  • Oder legen Sie CultureInfo fest, bevor Sie die Excel-Methode aufrufen. Zum Beispiel:

     oApp als neues Excel.Application() dimmen
    oApp.Visible = True
    oApp.UserControl = True
    Dimmen Sie oldCI als System.Globalization.CultureInfo = _
    System.Threading.Thread.CurrentThread.CurrentCulture
    System.Threading.Thread.CurrentThread.CurrentCulture = _
    Neues System.Globalization.CultureInfo("en-US")
    oApp.Workbooks.Add()
    System.Threading.Thread.CurrentThread.CurrentCulture = oldCI
  • Erstellen Sie ein 1033-Verzeichnis unter Microsoft Office\Office11. Kopieren Sie dann excel.exe in das Verzeichnis 1033 und benennen Sie es in xllex.dll um.

    Für weitere Informationen klicken Sie auf den folgenden Link:
    http://blogs.msdn.com/eric_carter/archive/2005/06/15/429515.aspx


Wenn Sie eine dieser Problemumgehungen für einen Computer verwenden, dessen regionale Einstellungen nicht mit der aktuellen Sprachversion von Office übereinstimmen, sollten Sie mit dem Verhalten von Excel vertraut sein und wissen, wie Excel Daten interpretiert, die möglicherweise für ein bestimmtes Gebietsschema formatiert sind. Weitere Informationen zum Schreiben globalisierter Excel-Lösungen mit Visual Studio .NET finden Sie in den folgenden Artikeln im MSDN:

Erstellen von Office-Lösungen für den Einsatz in mehreren Ländern/Regionen

http://msdn2.microsoft.com/en-us/library/aa168494(office.11).aspx Globalisierungs- und Lokalisierungsprobleme für Lösungen, die mit Microsoft Visual Studio Tools für das Microsoft Office System erstellt wurden

http://msdn2.microsoft.com/en-us/library/aa192494(office.11).aspx

Status

Microsoft hat bestätigt, dass es sich hierbei um einen Fehler in den Microsoft-Produkten handelt, die im Abschnitt „Gilt für" aufgeführt sind.

Mehr Informationen

Schritte zum Reproduzieren des Verhaltens

  1. Stellen Sie sicher, dass das Gebietsschema des Computers auf eine andere Sprache als Englisch eingestellt ist.

    Für Windows 2000:

    1. Doppelklicken Sie in der Windows-Systemsteuerung auf Regionaloptionen.

    2. Wählen Sie auf der Registerkarte „Allgemein" einen Standort aus und klicken Sie dann auf „OK".

    Für Windows XP oder Windows Server 2003:

    1. Öffnen Sie in der Systemsteuerung die Regions- und Sprachoptionen.

    2. Wählen Sie auf der Registerkarte „Regionale Optionen" ein Gebietsschema aus und klicken Sie dann auf „OK" .

  2. Starten Sie Microsoft Visual Studio .NET.

  3. Zeigen Sie im Menü „Datei" auf „Neu" und klicken Sie dann auf „Projekt". Klicken Sie im Dialogfeld „Neues Projekt" unter „Projekttypen" auf „Visual Basic-Projekte". Klicken Sie unter „Vorlagen" auf „Windows-Anwendung" und dann auf „OK". Standardmäßig wird Form1 erstellt.

  4. Klicken Sie im Menü „Ansicht" auf „Toolbox" und fügen Sie dann eine Schaltfläche zu „Form1" hinzu.

  5. Um das Codefenster für das Formular anzuzeigen, doppelklicken Sie auf Button1.

  6. Ersetzen Sie im Codefenster den folgenden Code

     Private Sub Button1_Click(ByVal sender As System.Object, _
    ByVal e As System.EventArgs) _
    Behandelt Button1.Klicken
    End Sub

    mit:

     Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Behandelt Button1.Click
    oApp als Objekt dimmen
    oDoc als Objekt dimmen
    oApp = CreateObject("Excel.Application")
    oApp.Visible = True
    oDoc = oApp.Workbooks.Add
    oDoc.Close()
    oApp.Quit()
    oDoc = Nichts
    oApp = Nichts
    End Sub
  7. Fügen Sie die folgende Zeile am Anfang des Form1-Codemoduls hinzu:

     Option Strikt Aus 
  8. Drücken Sie F5, um das Programm zu erstellen und auszuführen.

  9. Um den Fehler zu generieren, klicken Sie auf Button1. Der Fehler tritt in der folgenden Zeile auf:

     oDoc = oApp.Workbooks.Add 

Verweise

Weitere Informationen zur Office-Automatisierung finden Sie auf der folgenden Microsoft Office Development-Website:

http://support.microsoft.com/ofd Lesen Sie außerdem die folgenden Artikel der Microsoft Knowledge Base:

301982 So automatisieren Sie Microsoft Excel aus Visual Basic .NET

302084 So automatisieren Sie Microsoft Excel aus Microsoft Visual C# .NET

No comments:

Post a Comment