Makro Saat Sel Excel Berubah - Tips Excel

Daftar Isi

Beberapa pembaca telah mengajukan pertanyaan yang membutuhkan Excel untuk menjalankan bagian makro setiap kali nilai berubah dalam spreadsheet Excel.

Pertama, metode yang ditingkatkan hanya tersedia di XL97: Excel 97 memiliki beberapa penanganan kejadian baru yang memungkinkan makro dijalankan setiap kali sel berubah.

Misalkan setiap kali nilai yang lebih besar dari 100 dimasukkan di kolom A, Anda ingin memformat sel di sebelahnya menjadi merah.

  • Buka Edit Visual Basic (Alat> Makro> Editor Visual Basic)
  • Di jendela kiri, klik kanan Sheet1 dan pilih View Code.
  • Di bagian atas kotak dialog Book1 - Sheet1 Code, ada dua dropdown. Dari dropdown kiri pilih Worksheet. Dari tarik-turun kanan, pilih Ubah.
  • Masukkan baris kode berikut:

    Private Sub Worksheet_Change(ByVal Target As Excel.Range) If Target.Column = 1 Then ThisRow = Target.Row If Target.Value> 100 Then Range("B" & ThisRow).Interior.ColorIndex = 3 Else Range("B" & ThisRow).Interior.ColorIndex = xlColorIndexNone End If End If End Sub

Setiap kali nilai dalam sel diubah, makro ini akan dijalankan. Variabel Target akan memberi tahu Anda sel mana dan nilai baru sel tersebut. Anehnya, menggunakan metode ini tidak memperlambat proses secara signifikan.

Perhatikan bahwa makro akan tetap aktif selama lembar kerja terbuka atau hingga Anda menjalankan makro dengan baris berikut di dalamnya:

Application.EnableEvents = False

/ p> Di Excel 95 / 7.0: Anda perlu menggunakan metode OnEntry. Anda menentukan makro yang ingin Anda jalankan setelah nilai apa pun dimasukkan. Dalam hal ini, variabel Application.Caller berisi alamat dan nilai yang berubah. Masukkan yang berikut ini di modul baru:

Sub AutoOpen() Worksheets("Sheet1").OnEntry = "CheckIt" End Sub Sub CheckIt() If Application.Caller.Column = 1 Then ThisRow = Application.Caller.Row If Application.Caller.Value> 100 Then Range("B" & ThisRow).Interior.ColorIndex = 3 Else Range("B" & ThisRow).Interior.ColorIndex = xlColorIndexNone End If End If End Sub

Pemeriksaan OnEntry akan tetap aktif sampai Anda menjalankan makro dengan kode berikut:

Worksheets("Sheet1").OnEntry = False

Artikel yang menarik...