ΣΦΑΛΜΑ: "Μη έγκυρος τύπος βιβλιοθήκης ή βιβλιοθήκη παλαιότερης μορφής" (Old format or invalid type library) κατά την αυτοματοποίηση του Excel

Μεταφράσεις άρθρων Μεταφράσεις άρθρων
Αναγν. άρθρου: 320369 - Δείτε τα προϊόντα στα οποία αναφέρεται το συγκεκριμένο άρθρο.
Ανάπτυξη όλων | Σύμπτυξη όλων

Σε αυτήν τη σελίδα

Συμπτώματα

Εάν αυτοματοποιήσετε το Microsoft Excel με τα εργαλεία Microsoft Visual Basic .NET, Microsoft Visual C# .NET ή Microsoft Visual C++, ενδέχεται να εμφανιστεί το ακόλουθο μήνυμα λάθους κατά την κλήση συγκεκριμένων μεθόδων:
Σφάλμα: 0x80028018 (-2147647512)
Περιγραφή: Μη έγκυρος τύπος βιβλιοθήκης ή βιβλιοθήκη παλαιότερης μορφής

(Error: 0x80028018 (-2147647512)
Description: Old Format or Invalid Type Library )

Αιτία

Το σφάλμα αυτό εμφανίζεται κατά την κλήση μιας μεθόδου του Excel όταν ισχούουν οι ακόλουθες συνθήκες:
  • Η μέθοδος απαιτεί ένα αναγνωριστικό γλώσσας (LCID).
  • Εκτελείτε μια αγγλική έκδοση του Excel. Ωστόσο, οι τοπικές ρυθμίσεις του υπολογιστή έχουν καθοριστεί για γλώσσα διαφορετική από την αγγλική.
Εάν ο υπολογιστής-πελάτης χρησιμοποιεί την αγγλική έκδοση του Excel και η γλώσσα του τρέχοντα χρήστη έχει καθοριστεί να είναι διαφορετική από την αγγλική, το Excel θα επιχειρήσει να εντοπίσει το πακέτο γλώσσας της καθορισμένης γλώσσας. Εάν δεν εντοπιστεί το πακέτο γλώσσας, θα αναφερθεί το σφάλμα.

Εναλλακτικός τρόπος αντιμετώπισης

Για την αντιμετώπιση αυτού του ζητήματος, μπορείτε να χρησιμοποιήσετε μία από τις ακόλουθες μεθόδους:
  • Εγκαταστήστε το Multilingual User Interface Pack για την έκδοση του Office που χρησιμοποιείτε.
  • Εκτελέστε τη μέθοδο ή την ιδιότητα του Excel χρησιμοποιώντας το στοιχείο InvokeMember έτσι ώστε να μπορέσετε να καθορίσετε το CultureInfo για την κλήση. Για παράδειγμα, ο ακόλουθος κώδικας δείχνει πώς μπορείτε να ανακαλέσετε το αντικείμενο Βιβλία εργασίας (Workbooks) και τη μέθοδο Add θέτοντας το στοιχείο "en-US" ως 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)
    
  • Ή, να ορίσετε το στοιχείο CultureInfo προτού καλέσετε τη μέθοδο Excel. Για παράδειγμα:
    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

Όταν χρησιμοποιείτε μία από αυτές τις λύσεις σε έναν υπολογιστή στον οποίο οι τοπικές ρυθμίσεις δεν ταιριάζουν με την τρέχουσα έκδοση γλώσσας του Office, πρέπει να είστε εξοικειωμένοι με τον τρόπο συμπεριφοράς του Excel καθώς και με το πώς ερμηνεύει το Excel δεδομένα τα οποία ενδέχεται να είναι μορφοποιημένα για μια συγκεκριμένη γλώσσα. Για περισσότερες λεπτομέρειες σχετικά με τη σύνταξη καθολικών λύσεων του Excel με τη χρήση του Visual Studio .NET, ανατρέξτε στα ακόλουθα άρθρα του MSDN:

Δημιουργία λύσεων του Office για χρήση σε πολλές χώρες/περιοχές (στα αγγλικά):
http://msdn2.microsoft.com/en-us/library/aa168494(office.11).aspx
Ζητήματα καθολικής προσαρμογής και μετάφρασης για λύσεις που δημιουργούνται με τα εργαλεία του Microsoft Visual Studio για το Σύστημα του Microsoft Office (στα αγγλικά):
http://msdn2.microsoft.com/en-us/library/aa192494(office.11).aspx

Κατάσταση

Η Microsoft έχει επιβεβαιώσει ότι πρόκειται για ένα σφάλμα το οποίο παρουσιάζεται στα προϊόντα της που αναφέρονται στην ενότητα "Ισχύει για".

Περισσότερες πληροφορίες

Βήματα για την αναπαραγωγή της συμπεριφοράς

  1. Βεβαιωθείτε ότι η τοπική ρύθμιση του υπολογιστή έχει οριστεί σε γλώσσα διαφορετική από την αγγλική.

    Για τα Windows 2000:
    • Στον Πίνακα Ελέγχου (Control Panel) των Windows, κάντε διπλό κλικ στο εικονίδιο Τοπικές ρυθμίσεις (Regional Options).
    • Στην καρτέλα Γενικά (General), επιλέξτε μια θέση και, στη συνέχεια, κάντε κλικ στο κουμπί OK.
    Για τα Windows XP ή τα Windows Server 2003:
    • Στην ενότητα "Πίνακας ελέγχου" (Control Panel), ανοίξτε την επιλογή "Τοπικές ρυθμίσεις και ρυθμίσεις γλώσσας" (Regional and Language Options).
    • Στην καρτέλα Τοπικές ρυθμίσεις (Regional Options), επιλέξτε μια γλώσσα και, στη συνέχεια, κάντε κλικ στο κουμπί OK.
  2. Ξεκινήστε το Microsoft Visual Studio .NET.
  3. Από το μενού Αρχείο (File), τοποθετήστε το δείκτη του ποντικιού στην εντολή Δημιουργία (New) και κατόπιν κάντε κλικ στην εντολή Έργο (Project). Στο παράθυρο διαλόγου Νέο έργο (New Project), στην περιοχή Τύποι έργων (Project Types), κάντε κλικ στην επιλογή Έργα της Visual Basic (Visual Basic Projects). Στην ενότητα Πρότυπα (Templates), κάντε κλικ στην επιλογή Εφαρμογή των Windows (Windows Application) και, στη συνέχεια, κάντε κλικ στο κουμπί OK. Από προεπιλογή, δημιουργείται η φόρμα Form1.
  4. Στο μενού Προβολή (View), κάντε κλικ στην επιλογή Εργαλειοθήκη (Toolbox) και, στη συνέχεια, προσθέστε ένα κουμπί στη Φόρμα1.
  5. Για να εμφανίσετε το παράθυρο κώδικα για τη φόρμα, κάντε διπλό κλικ στην επιλογή Κουμπί1 (Button1).
  6. Στο παράθυρο κώδικα, αντικαταστήστε τον παρακάτω κώδικα
    Private Sub Button1_Click(ByVal sender As System.Object, _
                              ByVal e As System.EventArgs) _
                              Handles Button1.Click
    End Sub
    					
    με τον κώδικα:
    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. Προσθέστε την ακόλουθη γραμμή στην αρχή της λειτουργικής μονάδας κώδικα Form1:
    Option Strict Off
  8. Πιέστε το πλήκτρο F5 για να δημιουργήσετε και να εκτελέσετε το πρόγραμμα.
  9. Για να δημιουργήσετε το σφάλμα, κάντε κλικ στην επιλογή Κουμπί1 (Button1). Το σφάλμα εμφανίζεται στη γραμμή που αναφέρει:
    oDoc = oApp.Workbooks.Add
    					

Αναφορές

Για περισσότερες πληροφορίες σχετικά με την "Αυτοματοποίηση του Office" (Office Automation), επισκεφθείτε την ακόλουθη τοποθεσία της Microsoft Office Development στο Web (στα αγγλικά):
http://support.microsoft.com/ofd
Επιπλέον, ανατρέξτε στα ακόλουθα άρθρα της Γνωσιακής βάσης της Microsoft (Knowledge Base):
301982 Τρόπος αυτοματοποίησης του Microsoft Excel από το Visual Basic .NET
302084 Τρόπος αυτοματοποίησης του Microsoft Excel από το Microsoft Visual C# .NET

Ιδιότητες

Αναγν. άρθρου: 320369 - Τελευταία αναθεώρηση: Πέμπτη, 15 Νοεμβρίου 2007 - Αναθεώρηση: 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

Αποστολή σχολίων

 

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