BUG: "oude indeling of ongeldige typebibliotheek" Fout bij het automatiseren van Excel

Vertaalde artikelen Vertaalde artikelen
Artikel ID: 320369 - Bekijk de producten waarop dit artikel van toepassing is.
Alles uitklappen | Alles samenvouwen

Op deze pagina

Symptomen

Als u met Microsoft Visual Basic voor Microsoft Excel automatiseren .NETTO, Microsoft Visual c#.NET of Microsoft Visual C++, verschijnt de de volgende fout bij het aanroepen van bepaalde methoden:
Fout: 0x80028018 (-2147647512)
Beschrijving: Oude indeling of ongeldige typebibliotheek

Oorzaak

U ontvangt dit fout bericht een Excel-methode wordt aangeroepen wanneer de volgende voorwaarden wordt voldaan:
  • De methode vereist een LCID (locale identifier).
  • Een Engelstalige versie van Excel worden uitgevoerd. Echter, het land instellingen voor de computer zijn geconfigureerd voor niet-Engelse taal.
Als de clientcomputer wordt uitgevoerd voor de Engelse versie van Excel en de land instellingen voor de huidige gebruiker is geconfigureerd voor een andere taal dan het Engels, zal Excel proberen te vinden van het taalpakket voor de geconfigureerde taal. Als het taalpakket niet wordt gevonden, wordt de fout gerapporteerd.

Workaround

Dit probleem wilt omzeilen, kunt u een van de volgende methoden:
  • Installeer het Multilingual User Interface Pack voor uw de versie van Office.
  • De Excel-methode of eigenschap uitvoeren met behulp vanInvokeMemberdat kunt u deCultureInfo-waardevoor het gesprek. Bijvoorbeeld de volgende code wordt geïllustreerd hoe u oproepen kunnen hetWerk mappenobjectToevoegenmethode met "en-US" als deCultureInfo-waarde:
    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)
    
  • Of stel deCultureInfo-waardevoordat u de Excel-methode wordt aangeroepen. Bijvoorbeeld:
    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
  • Maak een map 1033 onder Microsoft Office\Office11. Vervolgens kopieert u Excel. exe naar de map 1033 en naam van het xllex.dll.

    Voor meer informatie klikt u op de volgende koppeling:
    http://blogs.msdn.com/eric_carter/Archive/2005/06/15/429515.aspx

Wanneer u een van deze oplossingen gebruiken voor een computer waar de land instellingen komen niet overeen met de huidige taal versie van Office, u moet bekend zijn met de werking van Excel en hoe gegevens worden geïnterpreteerd in Excel dat kan worden opgemaakt voor een bepaalde taal. Voor meer informatie over het schrijven Excel-oplossingen met Visual Studio, geglobaliseerd.NETTO, raadpleegt u de volgende in de MSDN-artikelen:

Office-oplossingen maken voor gebruik in meerdere Landen/regio's
(office.11) http://msdn2.Microsoft.com/en-us/library/aa168494. aspx
Globalisering en lokalisatie problemen met oplossingen die zijn gemaakt met Microsoft Visual Studio Tools for the Microsoft Office System
(office.11) http://msdn2.Microsoft.com/en-us/library/aa192494. aspx

Status

Microsoft heeft bevestigd dat dit een fout in de Microsoft-producten die worden vermeld in de sectie is "Van toepassing op".

Meer informatie

Stappen om het gedrag te reproduceren

  1. Controleer de land instellingen voor de computer is ingesteld op een andere taal dan Engels.

    Voor Windows 2000:
    1. Dubbel klik in het Configuratiescherm van Windows opLand instellingen.
    2. Op deAlgemeentab, selecteer een locatie en klik vervolgens opOK.
    Voor Windows XP of Windows Server 2003:
    1. Open land instellingen in het Configuratiescherm en taal opties.
    2. Op deLand instellingentabblad en selecteer een land instellingen en klik vervolgens opOK.
  2. Start Microsoft Visual Studio.NET.
  3. Op deBestandhet menuNieuwe, en klik vervolgens opProject. In deNieuw Projecthet dialoog venster onderProject typen, klik opVisual Basic-projecten. OnderSjablonen, klik opWindows-toepassing, en klik vervolgens opOK. Form1 wordt standaard gemaakt.
  4. Op deWeergavemenu, klikt u opWerkset, en voeg een knop toe aan Form1.
  5. Het code venster voor het formulier weer geven, dubbelklikt u opButton1.
  6. In het code venster de volgende code vervangen
    Private Sub Button1_Click(ByVal sender As System.Object, _
                              ByVal e As System.EventArgs) _
                              Handles Button1.Click
    End Sub
    					
    met:
    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. Voeg de volgende regel aan het begin van deFormulier1codemodule:
    Option Strict Off
  8. Druk op F5 om te bouwen en uitvoeren van het programma.
  9. Fout wordt gegenereerd, klikt u opButton1. De fout treedt op bij de regel die wordt gelezen:
    oDoc = oApp.Workbooks.Add
    					

Referenties

Voor meer informatie over Office Auto mat ion, gaat u naar de volgende Microsoft Office Development-website:
http://support.Microsoft.com/ofd
Zie ook de volgende artikelen in de Microsoft Knowledge Base:
301982Hoe Microsoft Excel automatiseren vanuit Visual Basic.NETTO
302084Informatie over het automatiseren van Microsoft Excel vanuit Microsoft Visual c#.NETTO

Eigenschappen

Artikel ID: 320369 - Laatste beoordeling: zondag 27 februari 2011 - Wijziging: 2.0
De informatie in dit artikel is van toepassing op:
  • Microsoft Office Excel 2007
  • 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 J# .NET 2003 Standard Edition
  • Microsoft Visual Studio Tools for the Microsoft Office System version 2003
Trefwoorden: 
kbvs2002sp1sweep kbautomation kbbug kbpending kbmt KB320369 KbMtnl
Automatisch vertaald artikel
BELANGRIJK: Dit artikel is vertaald door de vertaalmachine software van Microsoft in plaats van door een professionele vertaler. Microsoft biedt u professioneel vertaalde artikelen en artikelen vertaald door de vertaalmachine, zodat u toegang heeft tot al onze knowledge base artikelen in uw eigen taal. Artikelen vertaald door de vertaalmachine zijn niet altijd perfect vertaald. Deze artikelen kunnen fouten bevatten in de vocabulaire, zinsopbouw en grammatica en kunnen lijken op hoe een anderstalige de taal spreekt en schrijft. Microsoft is niet verantwoordelijk voor onnauwkeurigheden, fouten en schade ontstaan door een incorrecte vertaling van de content of het gebruik ervan door onze klanten. Microsoft past continue de kwaliteit van de vertaalmachine software aan door deze te updaten.
De Engelstalige versie van dit artikel is de volgende:320369

Geef ons feedback

 

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