Gejala
Saat menjalankan kode yang menggunakan otomatisasi kontrol Microsoft Excel, salah satu galat berikut ini mungkin terjadi:
Di Microsoft Excel 97 dan versi yang lebih baru dari Excel, Anda menerima salah satu pesan galat berikut:Pesan kesalahan 1
Galat run-time '1004':
Metode '< nama metode >' objek '_Global' gagalPesan galat 2
Galat aplikasi atau objek yang ditetapkan
Dalam Microsoft Excel 95, Anda menerima salah satu pesan galat berikut:
Pesan kesalahan 1
Galat run-time '-2147023174'
OLE kesalahan OtomasiPesan galat 2
Galat run-time '462':
Mesin server jauh tidak ada atau tidak tersedia.Penyebab
Visual Basic telah dibuat referensi ke Excel karena baris kode yang memanggil objek Excel, metode, atau properti tanpa kualifikasi elemen dengan variabel objek Excel. Visual Basic tidak mengeluarkan referensi ini sampai Anda mengakhiri program. Referensi ini bermasalah mengganggu kode otomatisasi ketika kode menjalankan lebih dari satu kali.
Pemecahan masalah
Untuk mengatasi masalah ini, Ubah kode sehingga setiap panggilan ke objek Excel, metode, atau properti yang memenuhi syarat dengan variabel objek yang sesuai.
Status
Perilaku ini merupakan bagian dari rancangan.
Informasi lebih lanjut
Untuk mengotomatisasi Microsoft Excel, Anda menetapkan variabel objek yang biasanya merujuk ke objek Excel aplikasi atau objek Excel Workbook. Variabel objek lain dapat menetapkan merujuk pada lembar kerja, kisaran, atau objek lain dalam model objek Microsoft Excel. Ketika Anda menulis kode untuk menggunakan objek Excel, metode, atau properti, Anda harus selalu mendahului panggilan dengan variabel objek yang sesuai. Jika tidak, Visual Basic menetapkan sendiri referensi ke Excel. Referensi ini dapat menyebabkan masalah saat Anda mencoba menjalankan kode otomatisasi beberapa kali. Perhatikan bahwa meskipun baris kode yang dimulai dengan variabel objek, panggilan akan dibuat untuk objek Excel, metode, atau properti di baris kode yang tidak diawali dengan variabel objek.
Langkah-langkah berikut ini menjelaskan cara untuk mereproduksi masalah ini dan cara memperbaiki masalah.Langkah-langkah untuk mereproduksi perilaku
-
Memulai project Standard EXE yang baru dalam Visual Basic. Form1 dibuat secara asali.
-
Pada Project menu, klik referensi, dan kemudian periksa Perpustakaan objek untuk versi Excel yang ingin Anda otomatisasikan.
-
Tempatkan kontrol CommandButton pada Form1.
-
Salin kode contoh berikut ke jendela kode Form1.
Option Explicit
Private Sub Command1_Click() Dim xlApp As Excel.Application Dim xlBook As Excel.Workbook Dim xlSheet As Excel.Worksheet Set xlApp = CreateObject("Excel.Application") Set xlBook = xlApp.Workbooks.Add Set xlSheet = xlBook.Worksheets("Sheet1") xlSheet.Range(Cells(1, 1), Cells(10, 2)).Value = "Hello" xlBook.Saved = True Set xlSheet = Nothing Set xlBook = Nothing xlApp.Quit Set xlApp = Nothing End Sub -
Pada menu dijalankan , klik mulai, atau tekan F5 untuk memulai program.
-
Klik kontrol CommandButton . Tidak ada kesalahan terjadi. Namun, referensi ke Excel telah dibuat dan belum diluncurkan.
-
Klik kontrol CommandButton lagi. Perhatikan bahwa Anda menerima salah satu pesan galat yang dibahas di bagian "gejala".
Catatan Pesan galat yang terjadi karena kode yang merujuk ke metode sel tanpa sebelumnya panggilan dengan variabel objek xlSheet . -
Stop proyek dan mengubah baris kode berikut ini:
xlSheet.Range(Cells(1,1),Cells(10,2)).Value = "Hello"
Mengubah baris kode yang menyerupai berikut ini baris kode.
xlSheet.Range(xlSheet.Cells(1,1),xlSheet.Cells(10,2)).Value = "Hello"
-
Jalankan program lagi. Perhatikan bahwa Anda dapat menjalankan kode beberapa kali tanpa menerima pesan galat.
Referensi
Untuk informasi selengkapnya, klik nomor artikel berikut ini untuk melihat artikel di Pangkalan Pengetahuan Microsoft:
Berkas Microsoft Office 97 otomatisasi bantuan 167223 tersedia
189618 Anda mungkin menerima pesan galat "galat Run-time '-2147023174' (800706ba)" atau "galat Run-time '462'" saat menjalankan kode Visual Basic yang menggunakan otomatisasi ke control Word