Menggunakan VBA untuk memprogram Excel tidak sepopuler dulu. Namun, masih ada banyak programmer yang lebih suka ketika bekerja dengan Excel. Jika Anda salah satu dari orang-orang itu, artikel ini adalah untuk Anda.
Menyalin satu baris di Excel VBA adalah jenis hal yang sangat berguna untuk Excel VBA. Misalnya, Anda mungkin ingin memiliki satu file dari semua kwitansi Anda dengan tanggal, akun, kategori, penyedia, produk / layanan, dan biaya masuk satu baris pada satu waktu, ketika mereka terjadi — sebuah contoh akuntansi yang berkembang daripada akuntansi statis. Untuk melakukan ini, Anda harus dapat menyalin baris dari satu lembar kerja ke lembar kerja lainnya.
Contoh program Excel VBA yang menyalin baris dari satu lembar kerja ke lembar kerja lainnya — hanya menggunakan tiga kolom untuk kesederhanaan — berisi:
- Kolom alfa untuk teks
- Kolom numerik - jumlah otomatis dibuat pada lembar kerja target
- Kolom tanggal - tanggal dan waktu saat ini diisi secara otomatis
Pertimbangan untuk Menulis Kode Excel VBA
Untuk memicu peristiwa yang menyalin baris, ikuti standar — kontrol bentuk tombol. Di Excel, klik Sisipkan pada tab Pengembang. Kemudian, pilih tombol Kontrol bentuk dan menggambar tombol di mana Anda inginkan. Excel secara otomatis menampilkan dialog untuk memberi Anda kesempatan untuk memilih makro dipicu oleh acara klik tombol atau untuk membuat yang baru.
Ada beberapa cara untuk menemukan baris terakhir di lembar kerja target sehingga program dapat menyalin baris di bagian bawah. Contoh ini memilih untuk mempertahankan nomor baris terakhir di lembar kerja. Untuk mempertahankan nomor baris terakhir, Anda harus menyimpan nomor itu di suatu tempat. Ini mungkin menjadi masalah karena pengguna dapat mengubah atau menghapus nomor. Untuk menyiasatinya, letakkan di dalam sel tepat di bawah tombol form. Dengan begitu, itu tidak dapat diakses oleh pengguna. (Hal termudah untuk dilakukan adalah memasukkan nilai di dalam sel dan kemudian memindahkan tombol di atasnya.)
Kode untuk Menyalin Baris Menggunakan Excel VBA
Sub Add_The_Line () Dim currentRow As Integer Sheets ("Sheet1"). Pilih currentRow = Range ("C2"). Baris Nilai (7) .Pilih Pilihan. Copy Sheets ("Sheet2"). Pilih Baris (currentRow). Pilih ActiveSheet. Tempel Dim Tanggal sebagai Tanggal theDate = Sekarang () Sel (currentRow, 4) .Nilai = CStr (theTanggal) Sel (currentRow + 1, 3) .Aktifkan Dim rTotalCell Sebagai Rentang Set rTotalCell = _ Lembar ("Sheet2"). Sel ( Baris Hitung, "C"). Akhir (xlUp) .Offset (1, 0) rTotalCell = WorksheetFunction. Jumlah _ (Rentang ("C7", rTotalCell. Offset (-1, 0))) Sheet ("Sheet1"). Rentang ("C2"). Nilai = currentRow + 1 End Sub
Kode ini menggunakan xlUp, "angka ajaib", atau lebih tepatnya konstanta enumerasi, yang dikenali oleh metode Akhir. Offset (1,0) hanya bergerak ke atas satu baris di kolom yang sama, jadi efek bersihnya adalah memilih sel terakhir di kolom C.
Dengan kata lain, pernyataan itu mengatakan:
- Pergi ke sel terakhir di kolom C (setara dengan End + Down Arrow).
- Lalu, kembali ke sel yang tidak digunakan terakhir (setara dengan End + Up Arrow).
- Lalu, naik satu sel lagi.
Pernyataan terakhir memperbarui lokasi baris terakhir.
VBA mungkin lebih sulit daripada VB.NET karena Anda harus tahu objek VB dan Excel VBA. Menggunakan xlUP adalah contoh yang baik dari jenis pengetahuan khusus yang sangat penting untuk dapat menulis makro VBA tanpa mencari tiga hal berbeda untuk setiap pernyataan yang Anda kode. Microsoft telah membuat kemajuan besar dalam meningkatkan editor Visual Studio untuk membantu Anda mengetahui sintaks yang benar, tetapi editor VBA tidak banyak berubah.