Programhiba: Az Excel automatizálásakor a „Régi formátum vagy érvénytelen típusfüggvénytár” hibaüzenet jelenik meg

A cikk fordítása A cikk fordítása
Cikk azonosítója: 320369 - A cikkben érintett termékek listájának megtekintése.
Az összes kibontása | Az összes összecsukása

A lap tartalma

A jelenség

Ha a Microsoft Excel programot a Microsoft Visual Basic .NET, a Microsoft Visual C# .NET vagy a Microsoft Visual C++ használatával automatizálja, bizonyos metódusok hívásakor az alábbi hibaüzenet jelenhet meg:
Hiba: 0x80028018 (-2147647512)
Leírás: Régi formátum vagy érvénytelen típusfüggvénytár.

Oka

A hiba akkor jelentkezhet Excel-metódus hívásakor, ha az alábbi feltételek mindegyike teljesül:
  • A metódushoz meg kell adni a területi beállítás azonosítóját.
  • Az Excel angol nyelvű változatát használja. A számítógép területi beállításai azonban nem az angol nyelvhez vannak beállítva.
Ha az ügyfélszámítógép az Excel angol nyelvű változatát használja, és az aktuális felhasználó az angoltól eltérő nyelvi beállításokat használ, az Excel megpróbálja megkeresni a beállított nyelvhez tartozó nyelvi csomagot. Ha a nyelvi csomag nem található, megjelenik a hibaüzenet.

Kerülő megoldás

A probléma kerülő megoldásához a következő módszerek egyikét kell követnie:
  • Telepítse az Office verziójának megfelelő Multilingual User Interface Pack csomagot.
  • Hajtsa végre az Excel-metódust vagy -tulajdonságot az InvokeMember használatával annak érdekében, hogy a CultureInfo objektumot megadhassa a híváshoz. Az alábbi kód például azt mutatja be, hogy a Workbooks objektum Add metódusát hogyan hívhatja meg a CultureInfo objektum "en-US" értékével:
    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)
    
  • A másik lehetőség, hogy az Excel-metódus hívása előtt beállítja a CultureInfo objektumot, például így:
    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

Ha a fenti kerülő megoldások egyikét használja olyan számítógépen, amelyen a területi beállítások nem felelnek meg az Office aktuális nyelvi változatának, tisztában kell lennie azzal, hogy az Excel hogyan működik, és hogyan értelmezi az adott nyelvnek megfelelően formázott adatokat. A globális Excel-megoldások Visual Studio .NET programmal való készítéséről további információt az MSDN alábbi cikkeiben talál:

Több országban és területen használható Office-megoldások létrehozását ismertető dokumentum
http://msdn2.microsoft.com/en-us/library/aa168494(office.11).aspx
A Microsoft Visual Studio Tools segítségével a Microsoft Office programcsomaghoz létrehozott megoldások globalizációs és honosítási problémáit ismertető dokumentum
http://msdn2.microsoft.com/en-us/library/aa192494(office.11).aspx

Állapot

A Microsoft megerősítette, hogy a cikkben tárgyalt jelenség az érintett termékek hibájára vezethető vissza.

További információ

A jelenség ismételt előidézéséhez szükséges lépések

  1. Ellenőrizze, hogy a számítógép nyelve az angoltól eltérő nyelvre van-e beállítva.

    Windows 2000 rendszer esetében:
    1. A Windows Vezérlőpultján kattintson duplán a Területi beállítások ikonra.
    2. Az Általános lapon jelöljön ki egy helyet, majd kattintson az OK.
    Windows XP vagy Windows Server 2003 esetében:
    1. A Vezérlőpult ablakban nyissa meg a Területi és nyelvi beállítások ablakot.
    2. A Területi beállítások lapon jelöljön ki egy nyelvet, majd kattintson az OK gombra.
  2. Indítsa el a Microsoft Visual Studio .NET alkalmazást.
  3. Kattintson a File (Fájl) menü New (Új) pontjának Project (Projekt) parancsára. A New Project (Új projekt) párbeszédpanel Project Types (Projekttípusok) csoportjában kattintson a Visual Basic Projects (Visual Basic-projektek) elemre. Kattintson a Templates (Sablonok) csoport Windows Application (Windows-alkalmazás) elemére, majd az OK gombra. Alapértelmezés szerint a Form1 nevű projekt jön létre.
  4. Kattintson a View (Nézet) menü Toolbox (Eszközkészlet) parancsára, majd adjon egy gombot a Form1 űrlaphoz.
  5. Az űrlap kódablakának megjelenítéséhez kattintson duplán a Button1 (Gomb1) elemre.
  6. A kódablakban cserélje ki az alábbi kódot:
    Private Sub Button1_Click(ByVal sender As System.Object, _
                              ByVal e As System.EventArgs) _
                              Handles Button1.Click
    End Sub
    					
    a következőre:
    Private Sub Button1_Click(ByVal kuldo 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. A Form1 kódmodul elejéhez adja hozzá az alábbi sort:
    Option Strict Off
  8. Nyomja meg az F5 billentyűt a program fordításához és futtatásához.
  9. A hiba létrehozásához kattintson a Button1 (Gomb1) elemre. A hiba az alábbi sorban jelentkezik:
    oDoc = oApp.Workbooks.Add
    					

Hivatkozások

Az Office automatizálásával kapcsolatos további információt a Microsoft Office fejlesztési webhelyén talál:
http://support.microsoft.com/ofd
Olvassa el továbbá a Microsoft Tudásbázis alábbi cikkeit:
301982 A Microsoft Excel automatizálása a Visual Basic .NET használatával (Előfordulhat, hogy a hivatkozás részben vagy teljes egészében angol nyelvű tartalomra mutat.)
302084 A Microsoft Excel automatizálása a Microsoft Visual C# .NET használatával (Előfordulhat, hogy a hivatkozás részben vagy teljes egészében angol nyelvű tartalomra mutat.)

Tulajdonságok

Cikk azonosítója: 320369 - Utolsó ellenőrzés: 2007. november 27. - Verziószám: 8.5
A cikkben található információ a következő(k)re vonatkozik:
  • 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
Kulcsszavak: 
kbbug kbautomation kbpending kbvs2002sp1sweep KB320369
A Microsoft tudásbázisban szolgáltatott információkat "az adott állapotban", bárminemű szavatosság vagy garancia nélkül biztosítjuk. A Microsoft kizár mindennemű, akár kifejezett, akár vélelmezett szavatosságot vagy garanciát, ideértve a forgalomképességre és az adott célra való alkalmasságra vonatkozó szavatosságot is. A Microsoft Corporation és annak beszállítói semmilyen körülmények között nem felelősek semminemű kárért, így a közvetlen, a közvetett, az üzleti haszon elmaradásából származó vagy speciális károkért, illetve a kár következményeként felmerülő költségek megtérítéséért, még abban az esetben sem, ha a Microsoft Corporationt vagy beszállítóit az ilyen károk bekövetkeztének lehetőségére figyelmeztették. Egyes államok joga nem teszi lehetővé bizonyos károkért a felelősség kizárását vagy korlátozását, ezért a fenti korlátozások az ön esetében esetleg nem alkalmazhatók.

Visszajelzés küldése

 

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