Teď jste offline a čekáte, až se znova připojí internet.

Chyba: "starý formát nebo neplatný typ knihovny" Chyba při automatizace Excel

Důležité: Tento článek byl přeložen pomocí software společnosti Microsoft na strojový překlad, ne profesionálním překladatelem. Společnost Microsoft nabízí jak články přeložené překladatelem, tak články přeložené pomocí software na strojový překlad, takže všechny články ve Znalostní databázi (Knowledge Base) jsou dostupné v češtině. Překlad pomocí software na strojový překlad ale není bohužel vždy dokonalý. Obsahuje chyby ve skloňování slov, skladbě vět, nebo gramatice, podobně jako když cizinci dělají chyby při mluvení v češtině. Společnost Microsoft není právně zodpovědná za nepřesnosti, chyby nebo škody vzniklé chybami v překladu, nebo při použití nepřesně přeložených instrukcí v článku zákazníkem. Společnost Microsoft aktualizuje software na strojový překlad, aby byl počet chyb omezen na minimum.

Projděte si také anglickou verzi článku:320369
Příznaky
Pokud automatizovat Microsoft Excel s Microsoft Visual Basic .NET, Microsoft Visual C# .NET nebo Microsoft Visual C++ můžete obdržet následující chybu při volání určitých metod:
Chyba: 0x80028018 (-2147647512)
Popis: Old Format nebo neplatné knihovny typů
Příčina
Zobrazit tato chybová zpráva, voláním metody Excel, když jsou splněny následující podmínky:
  • Metoda vyžaduje LCID (locale identifier).
  • Spustit anglickou verzi. Místní nastavení počítače však jsou konfigurovány pro neanglické jazykové.
Pokud klientský počítač spustí anglickou verzi aplikace Excel a národní prostředí aktuálního uživatele je nakonfigurována pro jazyk než angličtinu, Excel se pokusí vyhledat jazykovou sadu pro nakonfigurovaný jazyk. Jazykové sady není nalezen, hlášenou k ukončení připojení.
Jak potíže obejít
Chcete-li tento problém vyřešit, použijte jednu z následujících metod:
  • Nainstalujte MUI Pack pro vaši verzi sady Office.
  • Spustit Excel metodu nebo vlastnost pomocí InvokeMember, takže můžete určit CultureInfo pro volání. Následující kód například ukazuje jak vyvolat metodu Add s „ en-US"jako CultureInfo objekt sešity:
    Dim oApp As New Excel.Application()oApp.Visible = TrueoApp.UserControl = TrueDim oBooks As Object = oApp.WorkbooksDim ci As System.Globalization.CultureInfo = New System.Globalization.CultureInfo("en-US")oBooks.GetType().InvokeMember("Add", Reflection.BindingFlags.InvokeMethod, Nothing, oBooks, Nothing, ci)
  • Nebo nastavit CultureInfo před k volání metody Excel. Například:
    Dim oApp As New Excel.Application()oApp.Visible = TrueoApp.UserControl = TrueDim oldCI As System.Globalization.CultureInfo = _    System.Threading.Thread.CurrentThread.CurrentCultureSystem.Threading.Thread.CurrentThread.CurrentCulture = _    New System.Globalization.CultureInfo("en-US")oApp.Workbooks.Add()System.Threading.Thread.CurrentThread.CurrentCulture = oldCI
  • Vytvořit adresář 1033 pod Microsoft Office\Office11. Potom zkopírujte do adresáře 1033 excel.exe a přejmenovat jako xllex.dll.

    Další informace získáte klepnutím na následující odkaz:
    http://blogs.msdn.com/eric_carter/archive/2005/06/15/429515.aspx

Pokud použijete jeden z těchto řešení pro počítač kde místní nastavení neodpovídají aktuální jazykovou verzi sady Office, měli seznámit s chová Excel a jak bude Excel interpretovat data mohou být formátovány pro specifické národní prostředí. Další podrobnosti o psaní globalized Excel řešení s aplikací Visual Studio .NET naleznete v následujících článcích MSDN:

Vytváření Office Solutions pro použití více země/oblasti Globalizace a lokalizace problémy pro řešení vytvořených sada Microsoft Visual Studio Tools for the Microsoft Office System
Prohlášení
Společnost Microsoft potvrzuje, že se jedná o problém v produktech této společnosti, které jsou uvedeny v části Informace v tomto článku jsou určeny pro produkt.
Další informace

Kroky pro reprodukci tohoto chování

  1. Ověřte, že národního prostředí v počítači nastaven jazyk než angličtinu.

    Pro systém Windows 2000:
    1. V Ovládacích panelech poklepejte na panel Místní nastavení.
    2. Na kartě Obecné vyberte umístění a potom klepněte na tlačítko OK.
    Systém Windows XP nebo Windows Server 2003:
    1. Otevření ovládacího panelu Místní a jazykové nastavení.
    2. Na kartě Místní nastavení vyberte národní prostředí a potom klepněte na tlačítko OK.
  2. Spusťte aplikaci Visual Studio .NET.
  3. V nabídce soubor přejděte na příkaz Nový a klepněte na příkaz projekt. V dialogovém okně Nový projekt klepněte v části Typy ProjectProjekty jazyka. V části šablony klepněte Aplikace Windows a potom klepněte na tlačítko OK. Ve výchozím nastavení je vytvořen Form1.
  4. V nabídce Zobrazit klepněte na tlačítko panel a potom přidat tlačítko Form1.
  5. Zobrazit okno kód pro formulář, poklepejte na Button1.
  6. V okně kódu nahraďte následující kód
    Private Sub Button1_Click(ByVal sender As System.Object, _                          ByVal e As System.EventArgs) _                          Handles Button1.ClickEnd Sub					
    s:
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click    Dim oApp As Object    Dim oDoc As Object    oApp = CreateObject("Excel.Application")    oApp.Visible = True    oDoc = oApp.Workbooks.Add    oDoc.Close()    oApp.Quit()    oDoc = Nothing    oApp = NothingEnd Sub					
  7. Začátek modulu kódu Form1 přidejte následující řádek:
    Option Strict Off
  8. Stisknutím klávesy F5 sestavit a spustit program.
  9. Chcete-li generovat chybu, klepněte na tlačítko Button1. Dojde k chybě na řádku přečte:
    oDoc = oApp.Workbooks.Add					
Odkazy
Další informace o automatizaci Office naleznete na webu Microsoft Office Development: Dále naleznete v následujících článcích znalostní báze Microsoft Knowledge Base:
301982Jak automatizovat uzavřený z jazyka .NET
302084Jak automatizovat aplikaci Microsoft Excel pomocí jazyka Microsoft Visual C# .NET
xl2003 XL2007

Upozornění: Tento článek je přeložený automaticky

Vlastnosti

ID článku: 320369 - Poslední kontrola: 12/11/2009 06:39:01 - Revize: 9.0

Microsoft Office Excel 2007, Microsoft Office Excel 2003, Microsoft Excel 2002 Standard Edition, Microsoft Visual Basic .NET 2002 Standard Edition, Microsoft Visual C# .NET 2002 Standard Edition, Microsoft Visual C# .NET 2003 Standard Edition, Microsoft Visual C# 2005, Microsoft Visual Basic .NET 2003 Standard Edition, Microsoft Visual C++ 6.1, Microsoft Visual J# .NET 2003 Standard Edition, Microsoft Visual Studio Tools for the Microsoft Office System version 2003

  • kbmt kbvs2002sp1sweep kbautomation kbbug kbpending KB320369 KbMtcs
Váš názor