Excel - Satu makro untuk beberapa tugas baris

  • Isu
  • Larutan
  • Catatan

Isu

Saya memiliki dua buku kerja terpisah yang harus saya bandingkan. Tugas yang dihadapi adalah saya harus menemukan teks tertentu di buku kerja 2 (col A) dan setelah ditemukan - Saya kemudian harus menyalin dua sel / baris berikutnya (col B dan C) dan menempelkannya di wkbook 1 (col B dan C) untuk setiap baris untuk teks yang ditemukan. Yang tidak ditemukan, bisa dibiarkan sendiri atau kosong.

Larutan

Anda bisa menggunakan ini:

 Dim mySearchText Sebagai String Dim wb1, wb2 Sebagai Workbook Dim sh1, sh2 As Sheets Set wb1 = Workbooks ("Book1") Set wb2 = Workbooks ("Book2") Lakukan Sementara True mySearchText = InputBox ("Masukkan Teks untuk Mencari. Masukkan kosong untuk Cari. Kosong untuk keluar dari operasi. ", " Cari ") If (mySearchText =" ") Kemudian Keluar Sub wb2. Aktifkan wb2BRow = Sel (65536, 2) .End (xlUp) .Row wb2CRow = Sel (65536, 3) .End ( xlUp) .Row If (wb2BRow> wb2CRow) Kemudian wb2row = wb2BRow Else wb2row = wb2row Akhir Jika If wb2row = 2 wb2row = 2 wb1. Aktifkan pada Kesalahan Lanjutkan Selanjutnya Jika ActiveSheet.AutoFilterMode Kemudian Sel .AutoFilterMode = Baris Salah Lalu (1) .Pilih Seleksi. AutoFilter Berakhir Jika Pada Kesalahan Pergi ke Bidang 0 Seleksi. AutoFilter: = 1, Kriteria1: = "=" & mySearchText, Operator: = xlDan Dim lastRow Selama tahan lamaRow = Sel (65536), 1) .End (xlUp) .Row If (lastRow> 1) Kemudian Range (Sel (2, 2), Cells (lastRow, 3)). Pilih Pilihan. Salin wb2. Sel Aktif (wb2row, 2) .Pilih Pilihan .PasteSpecial wb2BRow = Sel (65536, 2) .End (xlUp) .Row wb2CRow = Sel (65536, 3) .End (xlUp) .Row If (wb2BRow> wb2CRow) Lalu wb2row = wb2BRow Else wb2row = wb2CRow End If wb2row = wb2row + 1 End If Loop 

Catatan

Terima kasih kepada rizvisa1 untuk tip ini di forum.

Artikel Sebelumnya Artikel Berikutnya

Tips