Note: The other languages of the website are Google-translated. Back to English
English English

Bagaimana cara memicu atau menjalankan Makro dengan mengklik sel tertentu di Excel?

Saat bekerja dengan Microsoft Excel, Anda mungkin tahu cara menjalankan Makro tertentu dengan Tombol Perintah. Tapi tahukah Anda cara menjalankan Makro hanya dengan mengklik sel tertentu di lembar kerja? Artikel ini akan menunjukkan kepada Anda metode memicu Makro dengan mengklik sel tertentu secara detail.

Picu atau jalankan Makro dengan mengklik sel tertentu dengan kode VBA


Picu atau jalankan Makro dengan mengklik sel tertentu dengan kode VBA

Kode VBA berikut dapat membantu Anda menjalankan Makro dengan mengklik sel tertentu di Excel. Silakan lakukan sebagai berikut.

1. Pada lembar kerja dengan sel yang perlu Anda klik untuk menjalankan Makro, klik kanan tab lembar, lalu klik Lihat kode dari menu konteks

2. Dalam Microsoft Visual Basic untuk Aplikasi jendela, salin dan tempel skrip VBA di bawah ini ke jendela Kode.

Kode VBA: Memicu atau menjalankan Makro dengan mengklik sel tertentu

Option Explicit

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Selection.Count = 1 Then
        If Not Intersect(Target, Range("D4")) Is Nothing Then
            Call MyMacro
        End If
    End If
End Sub

Catatan:

1. Dalam kode, D4 ​​adalah sel yang akan Anda klik untuk menjalankan Makro;

2. Harap ganti nama kode Makro Saya dengan Makro Anda akan menjalankan di lembar kerja. Lihat tangkapan layar:

3. tekan lain + Q tombol secara bersamaan untuk menutup Microsoft Visual Basic untuk Aplikasi jendela.

Mulai sekarang, saat mengklik sel D4 di lembar kerja saat ini, Makro yang Anda tentukan akan segera dipicu.


Terkait artikel:


Alat Produktivitas Kantor Terbaik

Kutools for Excel Memecahkan Sebagian Besar Masalah Anda, dan Meningkatkan Produktivitas Anda hingga 80%

  • Reuse: Masukkan dengan cepat rumus, bagan yang kompleks dan apa pun yang pernah Anda gunakan sebelumnya; Enkripsi Sel dengan kata sandi; Buat Milis dan mengirim email ...
  • Bilah Formula Super (dengan mudah mengedit beberapa baris teks dan rumus); Membaca Tata Letak (membaca dan mengedit sel dalam jumlah besar dengan mudah); Tempel ke Rentang yang Difilter...
  • Gabungkan Sel / Baris / Kolom tanpa kehilangan Data; Pisahkan Konten Sel; Gabungkan Baris / Kolom Duplikat... Mencegah Sel Duplikat; Bandingkan Rentang...
  • Pilih Duplikat atau Unik Baris; Pilih Baris Kosong (semua sel kosong); Temukan Super dan Temukan Fuzzy di Banyak Buku Kerja; Pilih Acak ...
  • Salinan Tepat Beberapa Sel tanpa mengubah referensi rumus; Buat Referensi Otomatis ke Beberapa Lembar; Sisipkan Poin, Kotak Centang, dan lainnya ...
  • Ekstrak Teks, Tambahkan Teks, Hapus berdasarkan Posisi, Hapus Space; Membuat dan Mencetak Subtotal Paging; Konversi Konten Antar Sel dan Komentar...
  • Filter Super (simpan dan terapkan skema filter ke sheet lain); Penyortiran Lanjutan menurut bulan / minggu / hari, frekuensi dan lainnya; Filter Khusus dengan huruf tebal, miring ...
  • Gabungkan Workbooks dan WorkSheets; Gabungkan Tabel berdasarkan kolom kunci; Pisahkan Data menjadi Beberapa Lembar; Konversi Batch xls, xlsx dan PDF...
  • Lebih dari 300 fitur canggih. Mendukung Office / Excel 2007-2019 dan 365. Mendukung semua bahasa. Penerapan yang mudah di perusahaan atau organisasi Anda. Fitur lengkap uji coba gratis 30 hari. Jaminan uang kembali 60 hari.
tab kte 201905

Tab Office Membawa antarmuka Tab ke Office, dan Membuat Pekerjaan Anda Jauh Lebih Mudah

  • Aktifkan pengeditan dan pembacaan tab di Word, Excel, PowerPoint, Publisher, Access, Visio, dan Project.
  • Buka dan buat banyak dokumen di tab baru di jendela yang sama, bukan di jendela baru.
  • Tingkatkan produktivitas Anda hingga 50%, dan kurangi ratusan klik mouse untuk Anda setiap hari!
officetab bawah
Urutkan komentar berdasarkan
komentar (37)
Belum ada peringkat. Jadilah yang pertama memberi peringkat!
Komentar ini diminimalkan oleh moderator di situs
Memicu Atau Menjalankan Makro Dengan Mengklik Sel Tertentu Dengan Kode VBA, ini tidak dapat berfungsi. Saya mencobanya dengan berbagai cara, tetapi tidak pernah mencapai apa yang dijanjikan.
Komentar ini diminimalkan oleh moderator di situs
Kode ini hanya akan berfungsi jika Anda meletakkannya di modul "Buku Kerja Ini". Ini tidak bekerja pada modul umum.
nama buku kerja > Objek Microsoft Excel > Buku Kerja Ini.
Komentar ini diminimalkan oleh moderator di situs
Kode ini akan bekerja pada modul kode lembar kerja. Anda perlu klik kanan pada tab sheet dan klik 'View Code'. Ini akan membuka modul kode untuk lembar kerja itu saja. Kemudian paste kode yang disebutkan.
Komentar ini diminimalkan oleh moderator di situs
Jika Anda ingin memiliki beberapa makro, sel menjalankan makro yang berbeda pada halaman yang sama - apakah itu mungkin?
Komentar ini diminimalkan oleh moderator di situs
Simon yang terhormat,
Skrip VBA di bawah ini dapat membantu Anda menjalankan makro yang berbeda dengan mengklik sel pada halaman yang sama.

Sub Worksheet_SelectionChange Pribadi (Target ByVal Sebagai Rentang)
Jika Target. Hitung = 1 Maka
Jika Tidak Berpotongan (Target, Rentang ("D4")) Tidak Ada Apa-apanya, Panggil MyMacro1
Jika Tidak Berpotongan (Target, Rentang ("D8")) Tidak Ada Apa-apanya, Panggil MyMacro2
Jika Tidak Berpotongan (Target, Rentang ("D10")) Tidak Ada Apa-apanya, Panggil MyMacro3
End If
End Sub

Silakan tambahkan baris "Jika Tidak Berpotongan(Target, Rentang("D10")) Tidak Ada Lalu Panggil MyMacro" untuk menjalankan lebih banyak makro dengan mengklik sel. Dan ubah nama sel dan makro dalam kode berdasarkan kebutuhan Anda.
Komentar ini diminimalkan oleh moderator di situs
Itu tidak berfungsi di Excel saya. Kodenya benar?
Komentar ini diminimalkan oleh moderator di situs
Hai Camila,
Maaf untuk ketidaknyamanannya. Coba kode VBA di bawah ini.

Sub Worksheet_SelectionChange Pribadi (Target ByVal Sebagai Rentang)
Redupkan xRgArr Sebagai Varian
Dim xFunArr Sebagai Varian
Redupkan xFNum Sebagai Integer
Redupkan xStr Sebagai String
Redupkan xRg Sebagai Rentang
xRgArr = Array("A1", "D1", "C1") 'Sel yang digunakan untuk memicu makro
xFunArr = Array("Nama kode1", "Nama kode2", "Nama kode3") 'Nama kode yang sesuai
Jika Seleksi. Hitung = 1 Maka
Untuk xFNum = 0 Ke UBound(xRgArr)
Setel xRg = ActiveSheet.Range(xRgArr(xFNum))
Jika Tidak Berpotongan(Target, xRg) Tidak Berarti
xStr = xFunArr(xFNum)
Aplikasi.Jalankan xStr
End If
Next
End If
End Sub
Komentar ini diminimalkan oleh moderator di situs
Ini bekerja dengan sempurna dan akan menghemat banyak waktu saya - terima kasih telah berbagi pengetahuan Anda - sangat dihargai!
Komentar ini diminimalkan oleh moderator di situs
Saya senang bisa membantu.
Komentar ini diminimalkan oleh moderator di situs
Besar. Berfungsi dengan baik... Terima kasih....
Komentar ini diminimalkan oleh moderator di situs
Hai.

Saya memiliki ini berfungsi dengan baik, tetapi ingin menambahkan kondisi untuk menjalankan makro. Saya hanya ingin menjalankan makro jika sel di samping sel yang saya klik berisi nilai tertentu.
misalnya Ketika saya mengklik sel F6, saya ingin makro berjalan jika sel E6 berisi "x", tetapi jika sel E6 kosong, makro tidak boleh berjalan.
Harapan itu masuk akal.
Terima kasih

ini kode asli saya tanpa syarat:


Opsi Eksplisit

Sub Worksheet_SelectionChange Pribadi (Target ByVal Sebagai Rentang)
Jika Seleksi. Hitung = 1 Maka
Jika Tidak Berpotongan(Target, Rentang("F6:F18")) Tidak Ada Apa-apanya
Tanggal panggilanPilih
End If
End If
End Sub
Komentar ini diminimalkan oleh moderator di situs
Hai,
Kode VBA berikut dapat membantu Anda memecahkan masalah. Silahkan dicoba dan terima kasih atas komentarnya.

Sub Worksheet_SelectionChange Pribadi (Target ByVal Sebagai Rentang)
Redupkan xRg Sebagai Rentang
Jika Tidak Berpotongan(Target, Rentang("F6:F18")) Tidak Ada Apa-apanya
Tetapkan xRg = ActiveSheet.Cells(Target.Row, Target.Column - 1)
Jika (xRg.Value = "") Atau (xRg.Value <> "X") Kemudian Keluar Sub
Hubungi datepick
End If
End Sub
Komentar ini diminimalkan oleh moderator di situs
Terima kasih, tetapi bagaimana dengan sel yang digabungkan?
Komentar ini diminimalkan oleh moderator di situs
Hai Alber,
Kode tidak berfungsi untuk sel yang digabungkan.
Komentar ini diminimalkan oleh moderator di situs
saya menggunakan OpenOffice dan telah mengklik kanan pada tab lembar dan acara yang dipilih dan kemudian memilih makro ini dari MyMacros.. Namun saya mendapatkan dan kesalahan pada baris berikut: If Selection.Count = 1 Then >>> "Basic runtime error, variabel tidak ditentukan...
Komentar ini diminimalkan oleh moderator di situs
Hi James,
Kode hanya berfungsi untuk Microsoft Office Excel. Terima kasih atas komentarmu.
Komentar ini diminimalkan oleh moderator di situs
Kode lengkap saya di makro ini adalah:


Sub Worksheet_SelectionChange Pribadi (Target ByVal Sebagai Rentang)

Dim val As String
REM val = Range("A2").Nilai

Jika Seleksi. Hitung = 1 Maka
Jika Tidak Berpotongan(Target, Rentang("D24")) Bukan Apa-apa Kemudian
REM Panggilan MyMacro
val = Rentang("D24").Nilai
Range("B27").Nilai = nilai
End If
End If
End Sub
Komentar ini diminimalkan oleh moderator di situs
Topik ini sangat menarik dan saya tertarik tetapi tidak tahu di mana menemukannya, untungnya Anda membuat topik ini, semoga semua orang akan membantu saya http://run-3.online
Komentar ini diminimalkan oleh moderator di situs
Excel 2002 (XP): Jika buku kerja dibuka dengan memilih "File" dan menekan "Shift" itu menonaktifkan makro di lembar itu, masalahnya adalah jika saya memilih "Alat > Makro > Makro..." Saya bisa menjalankan makro gan, gimana solusinya?
Komentar ini diminimalkan oleh moderator di situs
Hai Roger,
Kami belum menguji kode di Excel 2002(XP). Mengapa tidak menggunakan versi Microsoft Office yang lebih baru? Pekerjaan Anda akan lebih mudah.
Komentar ini diminimalkan oleh moderator di situs
Hasil yang sama pada tahun 2010.
Komentar ini diminimalkan oleh moderator di situs
Mengapa tidak menggunakan beberapa versi yang lebih baru itu akan lebih mudah
https://games.lol/racing/
Komentar ini diminimalkan oleh moderator di situs
Terima kasih, tetapi bagaimana dengan beberapa sel untuk mengklik untuk menjalankan beberapa makro.
Komentar ini diminimalkan oleh moderator di situs
Hai,
Coba kode VBA di bawah ini.

Sub Worksheet_SelectionChange Pribadi (Target ByVal Sebagai Rentang)
Redupkan xRgArr Sebagai Varian
Dim xFunArr Sebagai Varian
Redupkan xFNum Sebagai Integer
Redupkan xStr Sebagai String
Redupkan xRg Sebagai Rentang
xRgArr = Array("A1", "D1", "C1") 'Sel yang digunakan untuk memicu makro
xFunArr = Array("Nama kode1", "Nama kode2", "Nama kode3") 'Nama kode yang sesuai
Jika Seleksi. Hitung = 1 Maka
Untuk xFNum = 0 Ke UBound(xRgArr)
Setel xRg = ActiveSheet.Range(xRgArr(xFNum))
Jika Tidak Berpotongan(Target, xRg) Tidak Berarti
xStr = xFunArr(xFNum)
Aplikasi.Jalankan xStr
End If
Next
End If
End Sub
Komentar ini diminimalkan oleh moderator di situs
Terima kasih untuk kode ini. Apakah mungkin untuk membuatnya berfungsi dengan mengklik sel yang digabungkan dengan yang lain?
Komentar ini diminimalkan oleh moderator di situs
Hai M.Symonds,
Kode dalam artikel ini dapat membantu Anda: https://www.extendoffice.com/documents/excel/4354-excel-click-on-cell-to-run-macro.html
Terima kasih atas komentar anda
Komentar ini diminimalkan oleh moderator di situs
halo, saya mencoba menggunakan kode ini untuk menjalankan makro tempel tetapi sepertinya tidak tahu cara menempelkan makro dengan benar.

ini Marco asli saya

Sub-Paste()
'
'Tempel Makro
'

'
Range ("B34"). Pilih
ActiveSheet.PasteSpecial Format:="HTML", Link:=False, DisplayAsIcon:= _
Salah, NoHTMLFormatting:=Benar
End Sub


bantuan apa pun dihargai
Komentar ini diminimalkan oleh moderator di situs
Halo, Terima kasih untuk topik Anda yang menarik. Bagaimana jika misalnya saya ingin klik D4 di Sheet1 dan lihat hasil Macro di Sheet2!F3.
Komentar ini diminimalkan oleh moderator di situs
Tidak bekerja lagi.
Worksheet_SelectionChange tidak ada secara default. Artinya Anda tidak dapat menggunakannya untuk memicu makro.

Satu-satunya sub tersemat yang dapat Anda gunakan dirujuk dalam daftar tarik-turun "Buku Kerja", jadi...

Satu-satunya hal terdekat yang dapat Anda lakukan adalah menggunakan Workbook_SheetBeforeDoubleClick. Tetapi akan memasuki mode Edit (masih bukan masalah besar).
Komentar ini diminimalkan oleh moderator di situs
Hai CodeKiller.Worksheet_SelectionChange hanya ada di editor Sheet(Code). Klik kanan tab sheet dan klik View Code untuk mengaktifkan editor Sheet(Code).
Komentar ini diminimalkan oleh moderator di situs
Penting untuk ditekankan bahwa makro hanya berjalan di lembar kerja.
Kita yang menggunakan editor visual basic biasa sering berakhir dengan menyimpan makro di tempat lain selain di lembar kerja saat ini.
Tak satu pun dari kode ini akan bekerja dalam situasi itu.
Saya menemukan kode ini jauh lebih sederhana dan berfungsi sangat baik untuk saya: 

Sub Worksheet_SelectionChange Pribadi (Target ByVal Sebagai Excel.Range)
Jika Tidak Berpotongan(Range("d1"), Target) Tidak Berarti
Panggil aa
End If
End Sub
Sub aa() ' taruh kode anda disini
Rentang("D1").Pilih
Seleksi.Salin
Rentang("F1").Pilih
ActiveSheet.PasteEnd Sub
John Welles
jnw.wells@gmail.com
Komentar ini diminimalkan oleh moderator di situs
Hai John Wells, Terima kasih telah berbagi.
Komentar ini diminimalkan oleh moderator di situs
Bagi mereka yang menginginkan ini berfungsi untuk sel yang digabungkan, cara tercepat dan terkotor adalah memperbarui Baris 2 sebagai berikut:
Opsi Eksplisit

Sub Worksheet_SelectionChange Pribadi (Target ByVal Sebagai Rentang)
Jika Pilihan. Hitung > 0 Maka
Jika Tidak Berpotongan(Target, Rentang("D4")) Bukan Apa-apa Kemudian
Hubungi MyMacro
End If
End If
End SubSelection.Count digunakan untuk menentukan apakah pilihan telah dibuat sebelum mengeksekusi makro yang tersisa. Jika pilihan Anda terdiri dari empat sel yang telah digabungkan, Pilihan. Hitungan akan sama dengan 4, dan kode yang tersisa tidak akan pernah dieksekusi. Anda juga dapat mengubah baris 2 ke jumlah sel yang digabungkan, tetapi itu akan menimbulkan masalah jika Anda menggabungkan sel tambahan.
Komentar ini diminimalkan oleh moderator di situs
Agung! Grazie, era una vita che sognavo di poterlo fare, se può essere utile a qualcuno avendo necessità di eseguire più codici su più celle per
aumentare il numero di opzioni basta aggiungere le nuove istruzionisempre sotto la stessa option eksplisit altrimente ci viene detto che il riferimento al
lembar kerja non univoco. Mi spiego meglio proofemente su come ho adattato il codece con il mio esempio;

Opsi Eksplisit
Sub Worksheet_SelectionChange Pribadi (Target ByVal Sebagai Rentang)
Jika Seleksi. Hitung = 1 Maka
Jika Tidak Berpotongan(Target, Rentang("Y64")) Tidak Berarti
Rentang("Y65:Y78").Pilih
Rentang("Y65").Aktifkan
Seleksi.Hapus Konten
Rentang("Y65").Pilih
End If
Jika Tidak Berpotongan(Target, Rentang("A33")) Tidak Ada Apa-apanya
Rentang("A33").Pilih
Seleksi.Salin
ActiveWindow.WindowState = xlDiminimalkan
SendKeys "^v"
SendKeys "{BACKSPACE}"
End If
End If
End Sub

Grazie ancora status un'autentica meraviglia!

Massimo
Komentar ini diminimalkan oleh moderator di situs
Aku tidak memiliki ekspektasi apapun tentang gelar itu, tapi semakin aku tercengang. Penulis melakukan pekerjaan yang hebat. Saya menghabiskan beberapa menit membaca dan memeriksa fakta. Semuanya sangat jelas dan dapat dimengerti. Saya suka posting yang mengisi kesenjangan pengetahuan Anda. Yang ini sejenis.
Komentar ini diminimalkan oleh moderator di situs
Halo,

Tidak ada encuentro la manera de hacer lo que necesito. Espero de veras que me podáis ayudar.
Diperlukan que se lance una MACRO al hacer clic en una celda, pero no sé en qué celda va a ser, no lo puedo comparar con (si se ha seleccionado la celda A3, por ejemplo, que se lance la acción) porque por funcionalidades del fichero, las celdas se van a mover de sitio (se han podido insertar, mas o menos filas encima). Necesitaría poder saber qué celda es la que se ha seleccionado.
Apakah ada cara untuk melakukannya?
Terima kasih banyak sebelumnya.
Komentar ini diminimalkan oleh moderator di situs
Hai Halo,
Alamat sel konstan. Yang bisa Anda pindahkan hanyalah nilai sel.
Sel yang Anda tentukan dalam kode VBA masih merupakan sel yang memicu kode VBA yang ditentukan.
Belum ada komentar yang diposting di sini
Tinggalkan komentar anda
Posting sebagai Tamu
×
Beri peringkat pos ini:
0   Karakter
Lokasi yang Disarankan