Salin ke Baris Kosong Berikutnya - Tips Excel

Daftar Isi

NYARCH menulis

Saya ingin Excel menyalin seluruh baris ke lembar kerja Excel baru berdasarkan entri sel. Misalnya saya memiliki data di sel A8: AG8, saya ingin Excel menyalin seluruh baris ke sheet "a" jika nilai di H8 adalah "ir", dan sheet "b" jika nilai di H8 adalah "RR". Bagian yang paling rumit dan tidak hanya disalin, saya perlu menyalinnya ke baris kosong berikutnya di lembar kerja. Dari 150 baris atau lebih hanya sekitar 15 dari setiap jenis yang benar-benar akan disalin ke lembar baru.

MrExcel akan memberikan 50 poin bonus kepada setiap pembaca yang mengingat artikel Majalah Lotus yang menawarkan 10 tip hebat, dimana tip # 4 adalah "Gunakan tombol Putus untuk Pindah ke Akhir Jangkauan". Kembali ke masa Lotus, Anda bisa meletakkan cellpointer di mana saja dalam blok data, tekan END lalu ke bawah, dan penunjuk sel akan naik ke akhir rentang. Excel memiliki fungsi serupa, VBA memiliki fungsi serupa, dan ini adalah kunci untuk menemukan baris terakhir data pada lembar.

Teknik VBA adalah menggunakan End (xlDown) untuk mensimulasikan tombol End + Down atau End (xlUp) untuk mensimulasikan tombol End + Up. Menekan urutan kunci ini akan memindahkan penunjuk sel ke tepi berikutnya dari rentang data yang berdekatan. Bayangkan ada nilai di A1: A10 dan A20: A30. Mulai di A1. Tekan End + Down dan penunjuk sel bergerak ke A10. Tekan End + Down dan Anda pergi ke A20, yang merupakan tepi atas dari rentang data yang berdekatan berikutnya. Tekan End + Down dan Anda akan menuju ke A30. Saya sebenarnya bingung bagaimana menjelaskan perilaku ini dalam bahasa Inggris yang sederhana. Coba saja dan Anda akan melihat cara kerjanya.

Trik yang saya gunakan adalah mulai dari Kolom A di baris terakhir di spreadsheet dan kemudian tekan End + Up. Ini akan membawa saya ke baris terakhir dengan data. Saya kemudian tahu untuk menggunakan baris berikutnya sebagai baris kosong.

Berikut adalah makro kekerasan untuk menyelesaikan masalah minggu ini. Ya, Anda pasti bisa melakukan ini dengan lebih elegan dengan Filter Otomatis. Data saat ini ada di Sheet1, dengan judul di baris 2.

Public Sub CopyRows() Sheets("Sheet1").Select ' Find the last row of data FinalRow = Range("A65536").End(xlUp).Row ' Loop through each row For x = 2 To FinalRow ' Decide if to copy based on column H ThisValue = Range("H" & x).Value If ThisValue = "ir" Then Range("A" & x & ":AG" & x).Copy Sheets("a").Select NextRow = Range("A65536").End(xlUp).Row + 1 Range("A" & NextRow).Select ActiveSheet.Paste Sheets("Sheet1").Select ElseIf ThisValue = "RR" Then Range("A" & x & ":AG" & x).Copy Sheets("b").Select NextRow = Range("A65536").End(xlUp).Row + 1 Range("A" & NextRow).Select ActiveSheet.Paste Sheets("Sheet1").Select End If Next x End Sub

Mengingat bahwa Excel 2007 memiliki lebih dari 65.536 baris, Anda dapat menggunakan makro ini agar kompatibel ke depan. Perhatikan bahwa saya menggunakan CELLS (Row, Column), bukan RANGE di sini:

Public Sub CopyRows() Sheets("Sheet1").Select ' Find the last row of data FinalRow = Cells(Rows.Count, 1).End(xlUp).Row ' Loop through each row For x = 2 To FinalRow ' Decide if to copy based on column H ThisValue = Cells(x, 8).Value If ThisValue = "ir" Then Cells(x, 1).Resize(1, 33).Copy Sheets("a").Select NextRow = Cells(Rows.Count, 1).End(xlUp).Row + 1 Cells(NextRow, 1).Select ActiveSheet.Paste Sheets("Sheet1").Select ElseIf ThisValue = "RR" Then Cells(x, 1).Resize(1, 33).Copy Sheets("b").Select NextRow = Cells(Rows.Count, 1).End(xlUp).Row + 1 Cells(NextRow, 1).Select ActiveSheet.Paste Sheets("Sheet1").Select End If Next x End Sub

Untuk tips tentang cara menggunakan makro, lihat Memperkenalkan Editor VBA Excel.

Artikel yang menarik...