Bayangkan ketika kita memiliki data seperti berikut:
| A | B | C |
|---|---|---|
| Nama | Nilai | Status |
| Andi | 90 | Lulus |
| Budi | 75 | Lulus |
| Citra | 88 | Lulus |
| Deni | 60 | Tidak Lulus |
Hari ini data hanya berisi 4 baris.
Besok bisa bertambah menjadi 50 baris.
Minggu depan mungkin menjadi 500 baris.
Jika Anda menulis kode seperti ini:
Range("A1:C5").Copy
program hanya akan bekerja pada area A1:C5.
Lalu bagaimana jika jumlah data terus berubah?
Apakah Anda harus mengubah alamat Range setiap kali?
Tentu tidak.
Di sinilah Resize menjadi solusi yang sangat berguna.
Apa Itu Resize?
Resize adalah metode yang digunakan untuk mengubah ukuran suatu Range, baik menambah maupun mengurangi jumlah baris dan kolom.
Berbeda dengan Offset yang berpindah posisi, Resize tetap menggunakan titik awal yang sama, tetapi memperbesar atau memperkecil area yang dipilih.
Sintaks dasarnya adalah:
Range("A1").Resize(JumlahBaris, JumlahKolom)
Memahami Cara Kerja Resize
Misalkan titik awalnya adalah:
A1
Jika ditulis:
Range("A1").Resize(3, 2)
hasilnya adalah area:
A1:B3
Ilustrasinya:
| A | B |
|---|---|
| ✔ | ✔ |
| ✔ | ✔ |
| ✔ | ✔ |
Titik awal tetap A1, tetapi ukurannya berubah menjadi 3 baris × 2 kolom.
Memperbesar Area Range
Misalnya Anda ingin memilih area berukuran 5 baris dan 4 kolom.
Range("A1").Resize(5, 4).Select
Area yang dipilih adalah:
A1:D5
Anda tidak perlu lagi menuliskan alamat akhir secara manual.
Memperkecil Area Range
Resize juga dapat digunakan untuk mengambil sebagian area dari sebuah Range.
Misalnya:
Range("A1:D10").Resize(3, 2).Select
Hasilnya:
A1:B3
Meskipun Range awal sangat besar, Anda dapat mengambil hanya sebagian area yang diperlukan.
Menggunakan Resize dengan Variabel
Inilah alasan mengapa Resize sering digunakan dalam aplikasi VBA.
Dim JumlahBaris As Long
JumlahBaris = 100
Range("A1").Resize(JumlahBaris, 3).Select
Jika nilai JumlahBaris berubah menjadi:
-
50
-
200
-
1000
program tetap dapat berjalan tanpa mengubah alamat Range.
Kombinasi Resize dan Offset
Inilah pasangan yang paling sering digunakan dalam VBA.
Misalnya Anda memiliki tabel dengan header.
| A | B | C |
|---|---|---|
| Nama | Nilai | Status |
| Andi | 90 | Lulus |
| Budi | 75 | Lulus |
| Citra | 88 | Lulus |
Anda ingin memilih data saja, tanpa header.
Range("A1").Offset(1, 0).Resize(3, 3).Select
Urutan prosesnya adalah:
-
Mulai dari A1.
-
Turun satu baris menggunakan
Offset. -
Ambil area berukuran 3 × 3 menggunakan
Resize.
Hasil akhirnya:
A2:C4
Teknik ini sangat sering digunakan saat mengolah tabel yang memiliki baris judul.
Studi Kasus
Sebuah perusahaan menerima file penjualan setiap hari.
Jumlah data tidak pernah sama.
Kadang hanya:
15 baris
Kadang mencapai:
800 baris
Daripada menulis:
Range("A1:C800")
lebih baik menentukan jumlah data terlebih dahulu, kemudian menggunakan Resize.
Dim LastRow As Long
LastRow = Cells(Rows.Count, 1).End(xlUp).Row
Range("A1").Resize(LastRow, 3).Select
Dengan cara ini, program selalu menyesuaikan ukuran area berdasarkan jumlah data yang tersedia.
Kesalahan yang Sering Dilakukan
Mengira Resize Memindahkan Posisi
Perhatikan kode berikut.
Range("A1").Resize(5, 3)
Banyak pemula mengira area dimulai dari sel lain.
Padahal titik awal tetap berada di:
A1
Resize hanya mengubah ukuran area, bukan posisinya.
Salah Menentukan Jumlah Baris dan Kolom
Misalnya:
Resize(1, 1)
Hasilnya hanya satu sel.
Beberapa pemula mengira angka tersebut menunjukkan sel tujuan, padahal yang dimaksud adalah ukuran area.
Menggunakan Nilai Nol
Contoh berikut akan menghasilkan kesalahan.
Resize(0, 5)
Jumlah baris dan kolom pada Resize harus bernilai 1 atau lebih.
Kapan Sebaiknya Menggunakan Resize?
Gunakan Resize ketika Anda ingin:
-
mengolah tabel yang jumlah datanya berubah-ubah,
-
memilih area berdasarkan variabel,
-
menghindari penulisan alamat
Rangeyang panjang, -
membuat kode lebih fleksibel dan mudah dipelihara.
Resize sangat bermanfaat ketika dikombinasikan dengan Offset, Cells, maupun pencarian baris terakhir (LastRow).
Tips Praktis
💡 Gunakan Resize untuk membuat kode yang dapat menyesuaikan diri dengan perubahan jumlah data.
💡 Gabungkan Resize dengan Offset untuk melewati baris judul (header).
💡 Hindari menuliskan alamat area secara manual jika ukuran data dapat berubah.
💡 Gunakan variabel seperti LastRow dan LastColumn agar ukuran Range selalu dinamis.
💡 Latih penggunaan Resize bersama Range sebelum menggabungkannya dengan teknik VBA yang lebih kompleks.
Ringkasan
| Perintah | Hasil |
|---|---|
Resize(3,2) |
Area menjadi 3 baris × 2 kolom |
Resize(5,4) |
Area menjadi 5 baris × 4 kolom |
Offset(...).Resize(...) |
Berpindah posisi lalu mengubah ukuran area |
Resize(LastRow,3) |
Menyesuaikan area berdasarkan jumlah data |
Kesimpulan
Resize merupakan metode yang digunakan untuk mengubah ukuran sebuah Range tanpa mengubah titik awalnya. Metode ini sangat berguna ketika bekerja dengan data yang jumlah baris atau kolomnya tidak tetap. Dengan mengombinasikan Resize bersama Offset dan Cells, Anda dapat membuat kode VBA yang lebih dinamis, lebih ringkas, dan mampu beradaptasi dengan perubahan data secara otomatis.
