Συμπτώματα

Εάν αυτοματοποιήσετε το Microsoft Excel με Microsoft Visual Basic .NET, Microsoft Visual C# .NET ή Microsoft Visual C++, ενδέχεται να λάβετε το ακόλουθο σφάλμα κατά την κλήση ορισμένων μεθόδων:

Σφάλμα: 0x80028018 (-2147647512)Περιγραφή: Παλιά μορφή ή Βιβλιοθήκη μη έγκυρου τύπου

Αιτία

Λαμβάνετε αυτό το σφάλμα που καλεί μια μέθοδο του Excel όταν ισχύουν οι ακόλουθες συνθήκες:

  • Η μέθοδος απαιτεί LCID (αναγνωριστικό τοπικών ρυθμίσεων).

  • Εκτελείτε μια αγγλική έκδοση του Excel. Ωστόσο, οι τοπικές ρυθμίσεις για τον υπολογιστή έχουν ρυθμιστεί για μη αγγλική γλώσσα.

Εάν ο υπολογιστής-πελάτης εκτελεί την αγγλική έκδοση του Excel και οι τοπικές ρυθμίσεις για τον τρέχοντα χρήστη έχουν ρυθμιστεί για γλώσσα διαφορετική από τα Αγγλικά, το Excel θα προσπαθήσει να εντοπίσει το πακέτο γλώσσας για τη ρυθμισμένη γλώσσα. Εάν δεν βρεθεί το πακέτο γλωσσών, το σφάλμα αναφέρεται.

Λύση

Για να επιλύσετε αυτό το πρόβλημα, μπορείτε να χρησιμοποιήσετε μία από τις ακόλουθες μεθόδους:

  • Εγκαταστήστε το πακέτο πολύγλωσσου περιβάλλοντος εργασίας χρήστη για την έκδοση του Office που διαθέτετε.

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

    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
  • Δημιουργήστε έναν κατάλογο 1033 στην περιοχή Microsoft Office\Office11. Στη συνέχεια, αντιγράψτε excel.exe στον κατάλογο 1033 και μετονομάστε τον ως xllex.dll. Για περισσότερες πληροφορίες, κάντε κλικ στην ακόλουθη σύνδεση:http://blogs.msdn.com/eric_carter/archive/2005/06/15/429515.aspx

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

.aspx http://msdn2.microsoft.com/en-us/library/aa168494(office.11)Ζητήματα παγκοσμιοποίησης και τοπικής προσαρμογής για λύσεις που δημιουργήθηκαν με τα Εργαλεία του Microsoft Visual Studio για το Microsoft Office System

.aspx http://msdn2.microsoft.com/en-us/library/aa192494(office.11)

Κατάσταση

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

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

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

  1. Βεβαιωθείτε ότι οι τοπικές ρυθμίσεις για τον υπολογιστή έχουν οριστεί σε γλώσσα διαφορετική από τα Αγγλικά.Για Windows 2000:

    1. Στα Windows Πίνακας Ελέγχου, κάντε διπλό κλικ στην επιλογή Τοπικές ρυθμίσεις.

    2. Στην καρτέλα Γενικά, επιλέξτε μια θέση και, στη συνέχεια, κάντε κλικ στο κουμπί OK.

    Για τα Windows XP ή Windows Server 2003:

    1. Στο Πίνακας Ελέγχου, ανοίξτε τις Τοπικές ρυθμίσεις και τις Ρυθμίσεις γλώσσας.

    2. Στην καρτέλα Τοπικές ρυθμίσεις , επιλέξτε τις τοπικές ρυθμίσεις και, στη συνέχεια, κάντε κλικ στο κουμπί OK.

  2. Εκκινήστε το Microsoft Visual Studio .NET.

  3. Στο μενού Αρχείο, τοποθετήστε το δείκτη του ποντικιού στην επιλογή Δημιουργία και, στη συνέχεια, κάντε κλικ στην επιλογή Έργο. Στο παράθυρο διαλόγου Δημιουργία έργου, στην περιοχή Τύποι έργων, κάντε κλικ στην επιλογή Έργα της Visual Basic. Στην περιοχή Πρότυπα, κάντε κλικ στην επιλογή Εφαρμογή των Windows και, στη συνέχεια, κάντε κλικ στο κουμπί OK. Από προεπιλογή, δημιουργείται η φόρμα1.

  4. Στο μενού Προβολή, κάντε κλικ στην επιλογή Εργαλειοθήκη και, στη συνέχεια, προσθέστε ένα κουμπί στη φόρμα1.

  5. Για να εμφανίσετε το παράθυρο κώδικα για τη φόρμα, κάντε διπλό κλικ στο Κουμπί1.

  6. Στο παράθυρο κώδικα, αντικαταστήστε τον παρακάτω κώδικα

    Private Sub Button1_Click(ByVal sender As System.Object, _                          ByVal e As System.EventArgs) _                          Handles Button1.ClickEnd 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 = NothingEnd Sub
  7. Προσθέστε την ακόλουθη γραμμή στην αρχή της λειτουργικής μονάδας κώδικα Form1:

    Option Strict Off
  8. Πατήστε το πλήκτρο F5 για να δημιουργήσετε και να εκτελέσετε το πρόγραμμα.

  9. Για να δημιουργήσετε το σφάλμα, κάντε κλικ στο κουμπί1. Το σφάλμα εμφανίζεται στη γραμμή που αναφέρει:

    oDoc = oApp.Workbooks.Add

Αναφορές

Για περισσότερες πληροφορίες σχετικά με την αυτοματοποίηση του Office, επισκεφθείτε την ακόλουθη τοποθεσία Web ανάπτυξης του Microsoft Office:

http://support.microsoft.com/ofd Επιπλέον, ανατρέξτε στα ακόλουθα άρθρα της Γνωσιακής βάσης της Microsoft:

301982 Πώς να αυτοματοποιήσετε το Microsoft Excel από το Visual Basic .NET

302084 Πώς να αυτοματοποιήσετε το Microsoft Excel από το Microsoft Visual C# .NET

Χρειάζεστε περισσότερη βοήθεια;

Θέλετε περισσότερες επιλογές;

Εξερευνήστε τα πλεονεκτήματα της συνδρομής, περιηγηθείτε σε εκπαιδευτικά σεμινάρια, μάθετε πώς μπορείτε να προστατεύσετε τη συσκευή σας και πολλά άλλα.