BUG: "format lama atau perpustakaan tidak sah jenis" kesalahan saat mengotomatiskan Excel

Terjemahan Artikel Terjemahan Artikel
ID Artikel: 320369 - Melihat produk di mana artikel ini berlaku.
Perbesar semua | Perkecil semua

Pada Halaman ini

GEJALA

Jika Anda mengotomatisasi Microsoft Excel dengan Microsoft Visual Basic .NET, Microsoft Visual C#.NET, atau Microsoft Visual C++, Anda akan menerima galat berikut ketika memanggil metode tertentu:
Kesalahan: 0x80028018 (-2147647512)
Deskripsi: Format lama atau tidak sah perpustakaan jenis

PENYEBAB

Anda menerima kesalahan ini memanggil metode Excel ketika kondisi berikut ini benar:
  • Metode memerlukan LCID (lokal pengenal).
  • Anda menjalankan versi bahasa Inggris dari Excel. Namun, daerah pengaturan untuk komputer yang dikonfigurasi untuk non-bahasa Inggris.
Jika komputer klien menjalankan versi bahasa Inggris dari Excel dan lokal untuk pengguna saat ini dikonfigurasi untuk bahasa lain Selain bahasa Inggris, Excel akan mencoba untuk menemukan paket bahasa untuk dikonfigurasi bahasa. Jika paket bahasa tidak ditemukan, kesalahan dilaporkan.

TEKNIK PEMECAHAN MASALAH

Untuk mengatasi masalah ini, Anda dapat menggunakan salah satu metode berikut:
  • Menginstal paket antarmuka pengguna Multilingual untuk Anda Versi Office.
  • Menjalankan Excel metode atau properti dengan menggunakan InvokeMember sehingga Anda dapat menentukan CultureInfo untuk panggilan. Sebagai contoh, kode berikut menggambarkan bagaimana Anda dapat memohon Buku kerja objek Tambahkan metode dengan "en-US" sebagai 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)
    
  • Atau, mengatur CultureInfo sebelum memanggil metode Excel. Misalnya:
    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
  • Membuat direktori 1033 di bawah Microsoft Office\Office11. Kemudian, salin excel.exe ke direktori 1033, dan mengubah nama sebagai xllex.dll.

    Untuk informasi lebih lanjut, klik link berikut:
    http://Blogs.msdn.com/eric_carter/Archive/2005/06/15/429515.aspx

Ketika Anda menggunakan salah satu workarounds ini untuk komputer di mana pengaturan wilayah tidak cocok versi bahasa dari kantor, Anda harus akrab dengan bagaimana Excel berperilaku dan bagaimana Excel akan menafsirkan data yang mungkin diformat untuk lokal tertentu. Untuk detail lebih lanjut tentang menulis global Excel solusi dengan Visual Studio.NET, silakan lihat berikut artikel di MSDN:

Menciptakan solusi Office untuk digunakan dalam beberapa Negara/kawasan
.aspx http://msdn2.Microsoft.com/en-us/library/aa168494 (office.11)
Globalisasi dan isu-isu lokalisasi untuk solusi dibuat dengan Microsoft Visual Studio Alat untuk Microsoft Office System
.aspx http://msdn2.Microsoft.com/en-us/library/aa192494 (office.11)

STATUS

Microsoft telah mengkonfirmasi bahwa ini adalah bug dalam produk Microsoft sebagaimana didaftar di dalam bagian "Berlaku untuk".

INFORMASI LEBIH LANJUT

Langkah-langkah mereproduksi perilaku

  1. Pastikan bahwa lokal untuk komputer diatur ke bahasa lain selain bahasa Inggris.

    Untuk Windows 2000:
    1. Di Windows Control Panel, klik dua kali Daerah pilihan.
    2. Pada General tab, Pilih lokasi, dan kemudian klik Oke.
    Untuk Windows XP atau Windows Server 2003:
    1. Di Panel kontrol, buka Regional dan Language Options.
    2. Pada Daerah pilihan tab, pilih lokal, dan kemudian klik Oke.
  2. Mulai Microsoft Visual Studio.NET.
  3. Pada Berkas menu, titik Baru, lalu klik Project. Dalam Proyek baru dialog kotak, di bawah Jenis proyek, klik Proyek-proyek Visual Basic. Di bawah Pola acu, klik Aplikasi Windows, lalu klik Oke. Secara default, Form1 dibuat.
  4. Pada Lihat menu, klik Toolbox, dan kemudian menambahkan tombol ke Form1.
  5. Untuk menampilkan jendela kode untuk formulir, klik dua kali Button1.
  6. Dalam jendela kode, mengganti kode berikut
    Private Sub Button1_Click(ByVal sender As System.Object, _
                              ByVal e As System.EventArgs) _
                              Handles Button1.Click
    End Sub
    					
    dengan:
    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. Tambahkan baris berikut ke awal Form1 kode modul:
    Option Strict Off
  8. Tekan F5 untuk membangun dan menjalankan program.
  9. Untuk menghasilkan kesalahan, klik Button1. Kesalahan terjadi pada baris yang berbunyi:
    oDoc = oApp.Workbooks.Add
    					

REFERENSI

Untuk informasi lebih lanjut mengenai otomatisasi Office, kunjungi Microsoft Office pengembangan website berikut:
http://support.microsoft.com/ofd
Selain itu, lihat artikel Basis Pengetahuan Microsoft berikut:
301982 Cara mengotomatisasi Microsoft Excel dari Visual Basic.NET
302084 Cara mengotomatisasi Microsoft Excel dari Microsoft Visual C#.NET

Properti

ID Artikel: 320369 - Kajian Terakhir: 26 September 2011 - Revisi: 2.0
Berlaku bagi:
  • Microsoft Office Excel 2007
  • 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 J# .NET 2003 Standard Edition
  • Microsoft Visual Studio Tools for the Microsoft Office System version 2003
Kata kunci: 
kbvs2002sp1sweep kbautomation kbbug kbpending kbmt KB320369 KbMtid
Penerjemahan Mesin
PENTING: Artikel ini diterjemahkan menggunakan perangkat lunak mesin penerjemah Microsoft dan bukan oleh seorang penerjemah. Microsoft menawarkan artikel yang diterjemahkan oleh seorang penerjemah maupun artikel yang diterjemahkan menggunakan mesin sehingga Anda akan memiliki akses ke seluruh artikel baru yang diterbitkan di Pangkalan Pengetahuan (Knowledge Base) dalam bahasa yang Anda gunakan. Namun, artikel yang diterjemahkan menggunakan mesin tidak selalu sempurna. Artikel tersebut mungkin memiliki kesalahan kosa kata, sintaksis, atau tata bahasa, hampir sama seperti orang asing yang berbicara dalam bahasa Anda. Microsoft tidak bertanggung jawab terhadap akurasi, kesalahan atau kerusakan yang disebabkan karena kesalahan penerjemahan konten atau penggunaannya oleh para pelanggan. Microsoft juga sering memperbarui perangkat lunak mesin penerjemah.
Klik disini untuk melihat versi Inggris dari artikel ini:320369

Berikan Masukan

 

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