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

Bagaimana cara menjalankan makro saat nilai sel berubah di Excel?

Biasanya, di Excel, kita dapat menekan tombol F5 atau tombol Run untuk menjalankan kode VBA. Tapi, pernahkah Anda mencoba menjalankan kode makro tertentu saat nilai sel berubah? Artikel ini, saya akan memperkenalkan beberapa trik cepat untuk menangani pekerjaan ini di Excel.

Jalankan atau panggil makro ketika nilai sel tertentu berubah dengan kode VBA

Jalankan atau panggil makro saat nilai sel apa pun berubah dalam rentang dengan kode VBA


panah gelembung kanan biru Jalankan atau panggil makro ketika nilai sel tertentu berubah dengan kode VBA

Untuk menjalankan kode makro dengan mengubah nilai sel, kode VBA berikut dapat membantu Anda, lakukan seperti ini:

1. Klik kanan tab lembar yang ingin Anda jalankan makro jika nilai sel berubah, lalu pilih Lihat kode dari menu konteks, dan di buka Microsoft Visual Basic untuk aplikasi jendela, salin dan tempel kode berikut ke dalam Modul kosong:

Kode VBA: Jalankan makro saat nilai sel berubah:

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = "$A$1" Then
        Call Mymacro
    End If
End Sub

doc menjalankan makro jika sel berubah 1

Note: Pada kode di atas, A1 adalah sel spesifik tempat Anda ingin menjalankan kode, Mymakro adalah nama makro yang ingin Anda jalankan. Harap ubah sesuai kebutuhan Anda.

2. Dan kemudian simpan dan tutup jendela kode, sekarang, saat Anda memasukkan atau mengubah nilai di sel A1, kode tertentu akan dipicu sekaligus.


panah gelembung kanan biru Jalankan atau panggil makro saat nilai sel apa pun berubah dalam rentang dengan kode VBA

Jika Anda ingin menjalankan atau memicu makro saat ada nilai sel yang berubah dalam rentang sel, kode berikut dapat membantu Anda.

1. Klik kanan tab lembar yang ingin Anda jalankan makro jika nilai sel berubah, lalu pilih Lihat kode dari menu konteks, dan di buka Microsoft Visual Basic untuk aplikasi jendela, salin dan tempel kode berikut ke dalam Modul kosong:

Kode VBA: Jalankan makro saat nilai sel apa pun berubah dalam rentang:

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("A1:B100")) Is Nothing Then
Call Mymacro
End If
End Sub

doc menjalankan makro jika sel berubah 2

Note: Pada kode di atas, A1: B100 adalah sel spesifik tempat Anda ingin menjalankan kode, Mymakro adalah nama makro yang ingin Anda jalankan. Harap ubah sesuai kebutuhan Anda.

2. Dan kemudian simpan dan tutup jendela kode, sekarang, ketika Anda memasukkan atau mengubah nilai di sel siapa pun dari A1: B100, kode tertentu akan dieksekusi sekaligus.


Hapus semua makro dari beberapa buku kerja

Kutools untuk Excel's Hapus Batch Semua Makro utilitas dapat membantu Anda untuk menghapus semua makro dari beberapa buku kerja yang Anda butuhkan. Unduh dan uji coba gratis Kutools for Excel sekarang!

Kutools untuk Excel: dengan lebih dari 300 add-in Excel yang praktis, gratis untuk dicoba tanpa batasan dalam 30 hari. Unduh dan uji coba gratis Sekarang!


Artikel terkait:

Bagaimana cara menjalankan makro secara otomatis sebelum mencetak di Excel?

Bagaimana cara menjalankan makro berdasarkan nilai sel di Excel?

Bagaimana cara menjalankan makro berdasarkan nilai yang dipilih dari daftar drop-down di Excel?

Bagaimana cara menjalankan makro dengan mengklik hyperlink di Excel?

Bagaimana cara menjalankan makro saat lembar dipilih dari buku kerja?


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-2021 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.
  • Meningkatkan produktivitas Anda sebesar 50%, dan mengurangi ratusan klik mouse untuk Anda setiap hari!
officetab bawah
Urutkan komentar berdasarkan
komentar (17)
Belum ada peringkat. Jadilah yang pertama memberi peringkat!
Komentar ini diminimalkan oleh moderator di situs
Modul ini tidak berfungsi untuk saya. Dikatakan ketika VALUE sel berubah itu akan mengeksekusi kode. Saya menemukan jika saya MENGETIK ke dalam sel itu berfungsi, tetapi jika nilai sel diubah dengan rumus, misalnya Counta, maka itu tidak dijalankan. Apakah Anda memiliki solusi untuk mengeksekusi makro saat VALUE berubah melalui rumus? Terima kasih, Wayne
Komentar ini diminimalkan oleh moderator di situs
Masalah yang sama seperti Wayne. Bantuan apa pun sangat dihargai! Terima kasih Ronnie
Komentar ini diminimalkan oleh moderator di situs
Hallo teman-teman,

Ya, kode di atas hanya tersedia ketika nilai sel berubah secara manual, jika Anda perlu menjalankan kode makro tertentu secara otomatis ketika hasil rumus berubah dengan sel relatifnya berubah, silakan kunjungi artikel ini:
https://www.extendoffice.com/documents/excel/4618-excel-vba-run-macro-when-cell-formula-result-changes.html.
Silakan dicoba, dan semoga balasan Anda.
Komentar ini diminimalkan oleh moderator di situs
Tidak berfungsi... & saya mengubah nilai sel secara manual. Apakah ada prakonfigurasi yang harus disiapkan?
Komentar ini diminimalkan oleh moderator di situs
Uji ini dalam prosedur dan gunakan sebagai parameter


Sub Worksheet_Change Pribadi (ByVal Target Sebagai Rentang)

MsgBox Target.Address & "-" e Target.AddressLocal

End Sub
Komentar ini diminimalkan oleh moderator di situs
Ya deskripsi mengatakan itu harus dipicu ketika nilai berubah, tetapi kode kedua mengatakan itu ketika nilainya tidak ada apa-apa, dan yang pertama tidak memicu ketika suatu nilai berubah, tetapi jika saya menekan F5 ketika melihat kode, itu ingin untuk memicu MyMacro, tetapi tampaknya tidak bereaksi terhadap perubahan nilai sebanyak beralih dari tidak ada menjadi sesuatu atau sebaliknya.
Komentar ini diminimalkan oleh moderator di situs
Ini bekerja pertama kali bagi saya menggunakan daftar validasi data yang menampilkan teks berdasarkan pilihan daftar.
Komentar ini diminimalkan oleh moderator di situs
Bekerja sangat baik untuk saya! Dilema saya adalah saya ingin itu menjadi makro referensi relatif dan ada perbedaan antara menekan enter untuk menyimpan entri dan menghapus untuk menghapus sel.
Komentar ini diminimalkan oleh moderator di situs
Hei, kode yang berguna. Saya berpikir apakah mungkin untuk menyisipkan cincin di sekitar sel yang diubah saat diubah? Dan mengatur ulang lingkaran setiap hari Senin?
Komentar ini diminimalkan oleh moderator di situs
Halo, Kevin,
Di sini tidak ada ide untuk menyelesaikan masalah Anda, jika Anda memiliki solusi yang bagus, silakan beri komentar di sini.
Komentar ini diminimalkan oleh moderator di situs
Makro yang Anda panggil di mana Anda memiliki ini? Saya memiliki milik saya di folder Modul tetapi ketika saya memasukkan nilai apa pun ke sel mana pun dari lembar kerja saya mendapatkan kesalahan Kompilasi yang mengatakan:
Variabel atau prosedur yang diharapkan, bukan modul.

Tolong bantu.
Komentar ini diminimalkan oleh moderator di situs
Hai, Dr Cartwright,
Maaf untuk membalas Anda begitu terlambat.
Ya, seperti yang Anda katakan, kode makro harus ditempatkan ke dalam Modul, dan Anda perlu mengubah nama kode menjadi nama Anda sendiri seperti gambar berikut yang ditunjukkan:
Komentar ini diminimalkan oleh moderator di situs
Hi selamat siang
quisiera saber el codigo para que se active una macro cuando cambia el valor de una celda de una columna, but este valor cambia por formula,sin que el usuario introduzca ningun valor.
Komentar ini diminimalkan oleh moderator di situs
Hai teman-teman, saya sedang memecahkan masalah berikut: Saya ingin mengikis judul situs web ketika tautan dimasukkan di kolom A dan memasukkan nilai ini ke sel yang relevan (di sebelahnya) di kolom B. Masalahnya tampaknya setelah saya menempelkan situs web di kolom A, kode menjalankan kembali seluruh daftar dari kolom A2 ke "baris terakhir" seperti yang didefinisikan dalam kode. Apakah ada cara untuk hanya mengubah kolom B setelah satu kolom A dimodifikasi? Yaitu jika saya menempelkan tautan di kolom A36 saya mendapatkan judul di B36, terlepas dari apakah sel berada di tengah rentang yang digunakan atau di bagian paling bawah. Saya ingin menggunakan ini tanpa harus menjalankan kembali banyak input seperti saat ini; (yaitu loop "untuk i =2 ke baris terakhir")? Juga, saya ingin mengubah di bawah ini dari makro Modular yaitu sub ke sub pribadi yang bereaksi terhadap perubahan (yaitu fungsi berpotongan) di mana 'target' adalah sel apa pun dari rentang A:A. Terimakasih banyak!


Sub get_title_header()



Redupkan wb Sebagai Objek

Redupkan dokumen Sebagai Objek

Redupkan sURL Sebagai String

Redup lastrow As Long

lastrow = Sheet1.Cells(Rows.Count, "A").End(xlUp).row



Untuk i = 2 Untuk baris terakhir

Setel wb = CreateObject("internetExplorer.Application")

sURL = Sel(i, 1)



wb.menavigasi sURL

wb.Terlihat = Salah



Saat wb.Sibuk

Lakukan Acara

Pergi ke



''dokumen HTML

Setel doc = wb.document



Sel(i, 2) = doc.Title



Pada Kesalahan GoTo err_clear

Sel(i, 3) = doc.GetElementsByTagName("h1")(0).innerText

err_clear:

Jika Err <> 0 Maka

Err.Clear

Lanjutkan Selanjutnya

End If

wb.Keluar

Rentang(Sel(i, 1), Sel(i, 3)).Columns.AutoFit

Selanjutnya saya



End Sub




Terima kasih!
Komentar ini diminimalkan oleh moderator di situs
Saya mencoba mengotomatiskan 1 buku kerja (BOM) ketika buku kerja lain (Status Bagian) membuat perubahan. File status Bagian diperbarui setiap 15 menit. Saya perlu tahu cara mengotomatiskan kolom tertentu ketika perubahan ini terjadi? Ada ide?
Komentar ini diminimalkan oleh moderator di situs
Saya menggunakan kode di bawah ini untuk menyembunyikan berbagai kolom tergantung pada pilihan dari kotak drop-down yang terletak di sel C3, tetapi setelah perhitungan dilakukan di mana saja di lembar kerja, SEMUA kolom menjadi TIDAK TERSEMBUNYI. Bagaimana cara memperbaikinya?

Sub Lembar Kerja Pribadi_Rubah (Rentang Target As ByVal)

Columns("D:F").AutoFit

Redupkan Proj1 Sebagai String
Redupkan Proj2 Sebagai String
Redupkan Proj3 Sebagai String
Redupkan Proj4 Sebagai String
Redupkan Proj5 Sebagai String
Redupkan Proj6 Sebagai String
Redupkan Proj7 Sebagai String
Redupkan Proj8 Sebagai String
Redupkan Proj9 Sebagai String
Redupkan Proj10 Sebagai String

Proj1 = ActiveWorkbook.Sheets("Projects").Range("A1").Value
Proj2 = ActiveWorkbook.Sheets("Projects").Range("A2").Value
Proj3 = ActiveWorkbook.Sheets("Projects").Range("A3").Value
Proj4 = ActiveWorkbook.Sheets("Projects").Range("A4").Value
Proj5 = ActiveWorkbook.Sheets("Projects").Range("A5").Value
Proj6 = ActiveWorkbook.Sheets("Projects").Range("A6").Value
Proj7 = ActiveWorkbook.Sheets("Projects").Range("A7").Value
Proj8 = ActiveWorkbook.Sheets("Projects").Range("A8").Value
Proj9 = ActiveWorkbook.Sheets("Projects").Range("A9").Value
Proj10 = ActiveWorkbook.Sheets("Projects").Range("A10").Value

Redupkan xRG Sebagai Rentang
Redupkan xHRow Sebagai Integer
Tetapkan xRG = Rentang ("C3")
Jika Tidak Berpotongan (Target, xRG) Tidak Berarti

Jika Target.Value = Proj1 Maka
Application.Columns("E:F").Hidden = True
Application.Columns("D").Hidden = False

ElseIf Target.Value = Proj2 Kemudian
Range("D:D, F:F").SeluruhColumn.Hidden = Benar
Application.Columns("E").Hidden = False

End If
End If
End Sub
Komentar ini diminimalkan oleh moderator di situs
Inilah yang saya cari. Saat pengguna memasukkan nilai dalam sel, makro pengurutan sederhana akan berjalan. Makro berjalan dengan baik dengan sendirinya tetapi saya mendapatkan kesalahan penggunaan properti yang tidak valid menggunakan kode yang disarankan.

Apa yang bisa menjadi masalah?
Belum ada komentar yang diposting di sini
Tinggalkan komentar anda
Posting sebagai Tamu
×
Beri peringkat pos ini:
0   Karakter
Lokasi yang Disarankan

Ikuti kami

Hak Cipta © 2009 - www.extendoffice.com. | Seluruh hak cipta. Dipersembahkan oleh ExtendOffice. | Peta Situs
Microsoft dan logo Office adalah merek dagang atau merek dagang terdaftar dari Microsoft Corporation di Amerika Serikat dan / atau negara lain.
Dilindungi oleh Sectigo SSL