Du er frakoblet, venter på at Internett skal koble til igjen

FEIL: Feilmelding om gammelt format eller ugyldig typebibliotek ved automatisering av Excel

Kundestøtte for Office 2003 er avsluttet

Microsoft avsluttet kundestøtte for Office 2003 den 8. april 2014. Denne endringen har påvirket programvareoppdateringene og sikkerhetsalternativene dine. Finn ut hvordan dette påvirker deg og hvordan du forblir beskyttet.

Symptom
Hvis du automatiserer Microsoft Excel med Microsoft Visual Basic .NET, Microsoft Visual C# .NET eller Microsoft Visual C++, kan du få følgende feilmelding når du kaller bestemte metoder:
Feil: 0x80028018 (-2147647512)
Beskrivelse: Gammelt format eller ugyldig typebibliotek
Årsak
Du får denne feilmeldingen når du kaller en Excel-metode og følgende betingelser er oppfylt:
  • Metoden krever en LCID (identifikator for nasjonal innstilling).
  • Du kjører en engelskspråklig Excel-versjon, men de regionale innstillingene for datamaskinen er konfigurert for et annet språk.
Hvis du kjører en engelskspråklig Excel-versjon på klientdatamaskinen, men den nasjonale innstillingen som er angitt for gjeldende bruker, er konfigurert for et annet språk enn engelsk, vil Excel forsøke å finne frem til språkpakken for språket som er konfigurert. Hvis språkpakken ikke er å finne, blir feilen innrapportert.
Workaround
Du kan omgå dette problemet ved å bruke en av følgende metoder:
  • Installere MUI (Multilingual User Interface Pack) for din Office-versjon.
  • Kjøre Excel-metoden eller -egenskapen ved hjelp av InvokeMember, slik at du kan angi CultureInfo for kallet. Koden nedenfor illustrerer hvordan du kan aktivere metoden Add for Workbooks-objektet med en-US som CultureInfo:
    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)
  • Du kan eventuelt angi CultureInfo før du kaller Excel-metoden. Eksempel:
    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

Hvis du bruker en av disse midlertidige løsningene på en datamaskin med nasjonale innstillinger som ikke stemmer overens med gjeldende språkversjon for Office, bør du kjenne til hvordan Excel behandler og tolker data som kan formateres for et bestemt geografisk område. Hvis du vil vite mer om skriving av globaliserte Excel-løsninger med Visual Studio .NET, kan du se følgende artikler i MSDN:

Utvikle Office-løsninger for bruk i flere land/regioner Globalisering- og lokaliseringsproblemer for løsninger som er utviklet med Microsoft Visual Studio-verktøy for Microsoft Office System
Status
Microsoft har bekreftet at dette er en feil i Microsoft-produktene som er oppført i delen Informasjonen i denne artikkelen gjelder.
Mer informasjon

Fremgangsmåte for å gjenskape problemet

  1. Kontroller at engelsk ikke er valgt som nasjonal innstilling for datamaskinen.

    For Windows 2000:
    1. Dobbeltklikk Regionale innstillinger i Kontrollpanel i Windows.
    2. Gå til kategorien Generelt, velg et språk og klikk OK.
    For Windows XP og Windows Server 2003:
    1. Åpne Innstillinger for region og språk i Kontrollpanel.
    2. I kategorien Regionale innstillinger velger du en innstilling og klikker deretter OK.
  2. Start Microsoft Visual Studio .NET.
  3. Velg NewFile-menyen, og klikk deretter Project. Klikk Visual Basic Projects i dialogboksen New Project under Project types. Velg Windows Application under Templates, og klikk deretter OK. Som standard opprettes Form1.
  4. Velg ToolboxView-menyen og legg deretter til en knapp i Form1.
  5. Dobbeltklikk Button1 for å vise kodevinduet for skjemaet.
  6. Erstatt følgende kode i kodevinduet
    Private Sub Button1_Click(ByVal sender As System.Object, _                          ByVal e As System.EventArgs) _                          Handles Button1.ClickEnd 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 = NothingEnd Sub					
  7. Legg til følgende linje i begynnelsen av kodemodulen Form1:
    Option Strict Off
  8. Trykk F5 for å bygge og kjøre programmet.
  9. Klikk Button1 for å generere feilen. Feilen oppstår i følgende linje:
    oDoc = oApp.Workbooks.Add					
Referanser
Hvis du vil ha mer informasjon om Office-automatisering, kan du gå til webområdet for Microsoft Office-utvikling: I tillegg kan du se følgende artikler i Microsoft Knowledge Base:
301982 Automatisere Microsoft Excel fra Visual Basic .NET (denne artikkelen kan være på engelsk)
302084 Automatisere Microsoft Excel fra Microsoft Visual C# .NET (denne artikkelen kan være på engelsk)
XL2003 XL2007
Egenskaper

Artikkel-ID: 320369 – Forrige gjennomgang: 11/23/2007 12:27:42 – Revisjon: 8.3

  • 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
  • kbvs2002sp1sweep kbautomation kbbug kbpending KB320369
Tilbakemelding