Šī apmācība parādīs dažādus veidus, kā izdzēst rindas un kolonnas programmā Excel, izmantojot VBA.
Dzēst visu rindu vai kolonnu
Lai izdzēstu visu rindu VBA, izmantojiet šo koda rindu:
1 | Rindas (1). Dzēst |
Ievērojiet, ka mēs izmantojam Dzēst metode rindas dzēšanai.
Tā vietā, lai atsauktos uz Rindas objekts, varat atsaukties uz rindām, pamatojoties uz to rindām Diapazona objekts ar Visa rinda:
1 | Diapazons ("a1"). EntireRow.Delete |
Līdzīgi, lai izdzēstu visu kolonnu, izmantojiet šīs koda rindiņas:
1 | Kolonnas (1). Dzēst |
1 | Diapazons ("a1"). Visa kolonna. Dzēst |
Dzēst vairākas rindas vai kolonnas
Izmantojot to pašu loģiku, varat vienlaikus izdzēst vairākas rindas:
1 | Rindas ("1: 3"). Dzēst |
vai kolonnas:
1 | Kolonnas ("A: C"). Dzēst |
Ievērojiet šeit, ka mēs atsaucamies uz konkrētiem rindu un kolonnu numuriem / burtiem, ko ieskauj citāti.
Protams, varat atsaukties arī uz diapazona EntireRow:
1 | Diapazons ("a1: a10"). EntireRow.Delete |
Piezīme. Tālāk redzamie piemēri parāda tikai rindu dzēšanu, taču, kā redzams iepriekš, sintakse ir praktiski identiska kolonnu dzēšanai.
Dzēst tukšas / tukšas rindas
Šis piemērs izdzēsīs rindu, ja visa rinda būs tukša:
1234567891011 | Sub DeleteRows_EntireRowBlank ()Dim šūna kā diapazonsKatrai diapazona šūnai ("b2: b20")Ja Application.WorksheetFunction.CountA (cell.EntireRow) = 0 Tadšūna. Visa rinda. DzēstBeigas JaNākamā šūnaBeigu apakš |
Tas izmanto Excel darblapas funkciju: COUNTA.
Dzēst rindu, ja šūna ir tukša
Rinda tiks dzēsta, ja konkrētā šīs rindas kolonna ir tukša (šajā gadījumā B sleja):
1 | Diapazons ("b3: b20"). SpecialCells (xlCellTypeBlanks) .EntireRow.Delete |
Dzēst rindu, pamatojoties uz šūnas vērtību
Tas pārvietosies pa diapazonu un izdzēsīs rindas, ja noteiktā šūnas vērtība šajā rindā saka “dzēst”.
1234567891011 | Sub DeleteRowswithSpecificValue ()Dim šūna kā diapazonsKatrai diapazona šūnai ("b2: b20")Ja šūna.Vērtība = "dzēst" Tadšūna. Visa rinda. DzēstBeigas JaNākamā šūnaBeigu apakš |
Vairāk Dzēst rindu un kolonnu piemērus
Dzēst dublētas rindas
Šis kods izdzēsīs visas diapazona dublikātu rindas:
1 | Diapazons ("b2: c100"). RemoveDuplicates Columns: = 2 |
Ievērojiet, ka esam iestatījuši kolonnas: = 2. Tas liek VBA pārbaudīt abas pirmās divas datu slejas, apsverot, vai rindas ir dublikāti. Dublikāts tiek atrasts tikai tad, ja abās kolonnās ir dublikātu vērtības.
Ja mēs to būtu iestatījuši uz 1, tad tikai pirmajā rindā tiktu pārbaudītas vērtības.
Dzēst tabulas rindas
Šis kods izdzēsīs tabulas otro rindu, atsaucoties uz ListObjects.
1 | ThisWorkbook.Sheets ("Sheet1"). ListObjects ("list1"). ListRows (2) .Delete |
Dzēst filtrētās rindas
Lai izdzēstu tikai pēc filtrēšanas redzamās rindas:
1 | Diapazons ("b3: b20"). SpecialCells (xlCellTypeVisible) .EntireRow.Delete |
Dzēst diapazona rindas
Šis kods izdzēsīs visas diapazona rindas:
1 | Diapazons ("a1: a10"). EntireRow.Delete |
Dzēst atlasītās rindas
Šis kods izdzēsīs visas atlasītās rindas:
1 | Atlase. Visa rinda. Dzēst |
Dzēst pēdējo rindu
Tādējādi tiks izdzēsta pēdējā izmantotā B slejas rinda:
1 | Šūnas (Rows.Count, 2). Beigt (xlUp) .EntireRow.Delete |
Mainot 2 uz 1, varat izdzēst pēdējo izmantoto rindu A slejā utt.
1 | Šūnas (Rows.Count, 1). End (xlUp) .EntireRow.Delete |
Dzēst kolonnas pēc skaita
Lai izdzēstu kolonnu pēc tās numura, izmantojiet šādu kodu:
1 | Kolonnas (2). Dzēst |