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

Překlady článku Překlady článku
ID článku: 320369 - Produkty, které se vztahují k tomuto článku.
Rozbalit všechny záložky | Minimalizovat všechny záložky

Na této stránce

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 = 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)
    
  • Nebo nastavit CultureInfo před k volání metody Excel. Například:
    Dim oApp As New Excel.Application()
    oApp.Visible = True
    oApp.UserControl = True
    Dim oldCI As System.Globalization.CultureInfo = _
        System.Threading.Thread.CurrentThread.CurrentCulture
    System.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
http://msdn2.microsoft.com/en-us/library/aa168494(office.11).aspx
Globalizace a lokalizace problémy pro řešení vytvořených sada Microsoft Visual Studio Tools for the Microsoft Office System
http://msdn2.microsoft.com/en-us/library/aa192494(office.11).aspx

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.Click
    End 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 = Nothing
    End 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:
http://support.microsoft.com/ofd
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

Vlastnosti

ID článku: 320369 - Poslední aktualizace: 11. prosince 2009 - Revize: 9.0
Informace v tomto článku jsou určeny pro produkt:
  • 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
Klíčová slova: 
kbmt kbvs2002sp1sweep kbautomation kbbug kbpending KB320369 KbMtcs
Strojově přeložený článek
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

Dejte nám zpětnou vazbu

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com