Vba: cara menjalankan makro ketika nilai sel berubah
Anda dapat menggunakan sintaks berikut di VBA untuk menjalankan makro ketika nilai sel tertentu berubah:
Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = " $A$1 " Then
Call MultiplyMacro
End If
End Sub
Contoh khusus ini akan menyebabkan makro bernama MultiplyMacro dijalankan ketika nilai sel A1 berubah.
Contoh berikut menunjukkan cara menggunakan sintaksis ini dalam praktiknya.
Contoh: Jalankan makro ketika nilai sel berubah menggunakan VBA
Misalkan kita membuat makro berikut bernama MultiplyMacro yang mengalikan nilai di sel A1 dan B1 dan menampilkan hasilnya di sel C1 :
SubMultiplyMacro ()
Range(" C1 ") = Range(" A1 ") * Range(" B1 ")
End Sub
Misalnya, kita memiliki nilai 12 di sel A1 dan nilai 3 di sel B1 .
Jika kita menjalankan makro ini, kita akan menerima hasil sebagai berikut:
Sekarang misalkan kita ingin menjalankan makro ini secara otomatis setiap kali nilai sel A1 berubah.
Untuk melakukan ini, kita dapat mengklik kanan pada nama sheet dan kemudian klik Show Code :
Di jendela pengeditan kode yang muncul, Anda dapat menempelkan kode berikut:
Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = " $A$1 " Then
Call MultiplyMacro
End If
End Sub
Tangkapan layar berikut menunjukkan cara melakukan hal ini dalam praktik:
Kami kemudian dapat menutup editor VB.
Sekarang, setiap kali kita mengubah nilai di sel A1 , makro bernama MultiplyMacro akan otomatis berjalan dan melakukan perkalian menggunakan nilai baru di sel A1 .
Misalnya, kita mengubah nilai sel A1 menjadi 10 . Segera setelah kita mengubah nilainya dan menekan Enter , makro akan berjalan:
Makro mengalikan 10 dengan 3 dan menampilkan hasilnya di sel C2 .
Catatan : Jika Anda ingin menjalankan makro ketika sel dalam rentang tertentu berubah, Anda bisa menggunakan sintaks berikut:
Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range(" A1:B1 ")) Is Nothing Then
Call MultiplyMacro
End If
End Sub
Ini akan menyebabkan makro yang disebut MultiplyMacro berjalan jika ada sel dalam rentang A1:B1 yang berubah.
Sumber daya tambahan
Tutorial berikut menjelaskan cara melakukan tugas umum lainnya di VBA:
VBA: Cara menghitung jumlah lembar dalam buku kerja
VBA: Cara mengekstrak data dari buku kerja lain
VBA: Bagaimana cara menambahkan sheet baru