Excel - Makro untuk memadam baris dengan nilai tertentu
- Isu
- Penyelesaian
- Perhatikan bahawa
Isu
Pada dasarnya, apa yang saya ada adalah satu lembaran penuh dengan maklumat mengenai jabatan yang berlainan dan apa yang saya ingin lakukan ialah padam setiap baris KECUALI baris yang mengandungi beberapa nilai yang ditentukan (yang saya ingin masukkan pada menjalankan skrip).
Katakan dalam lajur yang menamakan jabatan (dalam helaian saya bernama "Avd"), saya ingin skrip untuk mencari mana-mana sel yang tidak mengandungi, contohnya nombor 1, 3, 5, 6 atau 21 .. dan sebagainya (saya mempunyai kira-kira 36 nombor yang berbeza).
Penyelesaian
Apa yang anda perlu lakukan ialah menyerlahkan maklumat dalam lajur dan kemudian menjalankan Makro berikut. Terdapat kotak yang akan meminta anda memilih nilai yang ingin anda simpan. Ini boleh didapati sehingga 30, 000 baris.
Sub DeleteRows () Dim strToDelete Sebagai Dimensi RngSrc As Range Dim Numows Sebagai Integer Dim ThisRow Sebagai Integer Dim ThatRow Sebagai Integer Dim ThisCol Sebagai Integer Dim J Sebagai Integer Dim DeletedRows Sebagai Integer strToDelete = InputBox ("Nilai untuk Trigger Keep, Jason ??? ", " Delete Rows ") Set rngSrc = ActiveSheet.Range (ActiveWindow.Selection.Address) NumRows = rngSrc.Rows.Count ThisRow = rngSrc.Row ThatRow = ThisRow + NumRows - 1 ThisCol = rngSrc.Column Dim topRows As Integer Dim bawahRendah Sebagai Integer bottomRows = 30000 Untuk J = ThisRow To NumRows Langkah 1 Jika Sel (J, ThisCol) = strToDelete Kemudian 'Rows (J) .Select topRows = J Exit Untuk DeletedRows = DeletedRows + 1 End If Next J For J = (topRows + 1) Ke NumRows Langkah 1 Jika Sel (J, ThisCol) strToDelete Kemudian 'Rows (J) .Select bottomRows = J Keluar Untuk' DeletedRows = DeletedRows + 1 End If Next J Jika topRows 4 Then ActiveSheet.Range (Sel (4, 1), Sel (topRows - 1, 52)). Pilih Selection.delete Shift: = xlUp Akhir Jika ActiveSheet.Range (Sel (bottomRows - topRows + 4, 1), Sel (30000, 52)). Pilih Selection.delete Shift: = xlUp 'MsgBox "Bilangan baris dipadam:" & DeletedRows End Sub
Perhatikan bahawa
Terima kasih kepada Jason untuk tip ini di forum.