Fejl: Fejlmeddelelsen "Gammelt format eller ugyldig type-DLL" vises, når Excel automatiseres

Oversættelser af artikler Oversættelser af artikler
Artikel-id: 320369 - Få vist de produkter, som denne artikel refererer til.
Udvid alle | Skjul alle

På denne side

Symptomer

Hvis du automatiserer Microsoft Excel med Microsoft Visual Basic .NET, Microsoft Visual C# .NET eller Microsoft Visual C++, vises følgende fejlmeddelelse muligvis, når du kalder visse metoder:
Fejl: 0x80028018 (-2147647512)
Beskrivelse: Gammelt format eller ugyldig type-DLL

Årsag

Denne fejlmeddelelse vises, når du kalder en Excel-metode, og følgende betingelser gør sig gældende:
  • Metoden kræver et LCID (landestandard-id).
  • Du kører en engelsk version af Excel. Men computerens internationale indstillinger er konfigureret til et andet sprog end engelsk.
Hvis klientcomputeren kører den engelske version af Excel, og landestandarden for den aktuelle bruger er konfigureret til et andet sprog end engelsk, vil Excel forsøge at finde sprogpakken til det konfigurerede sprog. Hvis sprogpakken ikke bliver fundet, rapporteres fejlen.

Workaround

Du kan løse problemet ved at benytte én af følgende metoder:
  • Installer den MUI-pakke (Multilingual User Interface Pack), der passer til din version af Office.
  • Kør Excel-metoden eller -egenskaben ved hjælp af InvokeMember, så du kan angive CultureInfo for kaldet. Følgende kode illustrerer f.eks., hvordan du kan aktivere metoden Tilføj under objektet Projektmapper ved at angive "en-US" under CultureInfo:
    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)
    
  • Eller angiv CultureInfo, inden du kalder Excel-metoden. F.eks.:
    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

Når du benytter en af disse løsninger på en computer, hvor de internationale indstillinger ikke svarer til den aktuelle sprogversion af Office, skal du vide, hvordan Excel fungerer, og hvordan Excel fortolker data, der eventuelt er formateret til en specifik landestandard. Du kan finde flere oplysninger om, hvordan du skriver globaliserede Excel-løsninger med Visual Studio .NET, i følgende artikler i MSDN:

Creating Office Solutions for Use in Multiple Countries/Regions
http://msdn2.microsoft.com/en-us/library/aa168494(office.11).aspx
Globalization and Localization Issues for Solutions Created with Microsoft Visual Studio Tools for the Microsoft Office System
http://msdn2.microsoft.com/en-us/library/aa192494(office.11).aspx

Status

Microsoft har bekræftet, at denne fejl forekommer i de Microsoft-produkter, der er angivet i afsnittet "Gælder for".

Yderligere Information

Trin til genskabelse af funktionsmåden

  1. Kontroller, at landestandarden for computeren er angivet til et andet sprog end engelsk.

    Windows 2000:
    1. Dobbeltklik på Internationale indstillinger i Kontrolpanel i Windows.
    2. Vælg en placering under fanen Generelt, og klik derefter på OK.
    Windows XP eller Windows Server 2003:
    1. Åbn Internationale og sproglige indstillinger i Kontrolpanel.
    2. Vælg en landestandard under fanen Internationale indstillinger, og klik derefter på OK.
  2. Start Microsoft Visual Studio .NET.
  3. Peg på Ny i menuen Filer, og klik derefter på Projekt. Klik på Visual Basic-projekt under Projekttype i dialogboksen Nyt projekt. Klik på Windows-program under Skabeloner, og klik derefter på OK. Som standard oprettes Form1.
  4. Klik på Værktøjskasse i menuen Vis, og føj derefter en knap til Form1.
  5. Dobbeltklik på Button1 for at få vist kodevinduet for formularen.
  6. Erstat følgende kode i kodevinduet
    Private Sub Button1_Click(ByVal sender As System.Object, _
                              ByVal e As System.EventArgs) _
                              Handles Button1.Click
    End Sub
    					
    med:
    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. Føj følgende linje til begyndelsen af kodemodulet Form1:
    Option Strict Off
  8. Tryk på F5 for at bygge og køre programmet.
  9. Klik på Button1 for at generere fejlen. Fejlen forekommer i den linje, der lyder som følger:
    oDoc = oApp.Workbooks.Add
    					

Referencer

Du kan finde flere oplysninger om Office-automatisering på webstedet til Microsoft Office Development:
http://support.microsoft.com/ofd
Se desuden følgende artikler i Microsoft Knowledge Base:
301982 Sådan automatiseres Microsoft Excel fra Visual Basic .NET. Artiklen er evt. på engelsk.
302084 Sådan automatiseres Microsoft Excel fra Microsoft Visual C# .NET. Artiklen er evt. på engelsk.

Egenskaber

Artikel-id: 320369 - Seneste redigering: 23. november 2007 - Redigering: 8.3
Oplysningerne i denne artikel gælder:
  • Microsoft Office Excel 2007
  • Microsoft Office Excel 2003
  • Microsoft Excel 2002 Standard
  • Microsoft Visual Basic .NET 2002 Standard
  • 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
Nøgleord: 
kbvs2002sp1sweep kbautomation kbbug kbpending KB320369

Send 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