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' gagal

Pesan 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 Otomasi

Pesan 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

  1. Memulai project Standard EXE yang baru dalam Visual Basic. Form1 dibuat secara asali.

  2. Pada Project menu, klik referensi, dan kemudian periksa Perpustakaan objek untuk versi Excel yang ingin Anda otomatisasikan.

  3. Tempatkan kontrol CommandButton pada Form1.

  4. 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
  5. Pada menu dijalankan , klik mulai, atau tekan F5 untuk memulai program.

  6. Klik kontrol CommandButton . Tidak ada kesalahan terjadi. Namun, referensi ke Excel telah dibuat dan belum diluncurkan.

  7. 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 .

  8. 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"
  9. 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

Perlu bantuan lainnya?

Kembangkan keterampilan Anda
Jelajahi pelatihan
Dapatkan fitur baru terlebih dahulu
Gabung Microsoft Insider

Apakah informasi ini bermanfaat?

Seberapa puaskah Anda dengan kualitas terjemahannya?
Apa yang memengaruhi pengalaman Anda?

Terima kasih atas umpan balik Anda!

×