Този урок ще демонстрира различни начини за изтриване на редове и колони в Excel с помощта на VBA.
Изтриване на цял ред или колона
За да изтриете цял ред във VBA, използвайте този ред код:
1 | Редове (1). Изтриване |
Забележете, че използваме Изтрий метод за изтриване на ред.
Вместо да се позовава на Редове обект, можете да се позовавате на редове въз основа на техните Range Object с EntireRow:
1 | Диапазон ("a1"). EntireRow.Delete |
По същия начин, за да изтриете цяла колона, използвайте тези редове код:
1 | Колони (1). Изтрий |
1 | Диапазон ("a1"). Цяла колона. Изтриване |
Изтриване на няколко реда или колони
Използвайки същата логика, можете също да изтриете няколко реда наведнъж:
1 | Редове („1: 3“). Изтриване |
или колони:
1 | Колони ("A: C"). Изтриване |
Забележете, тук се позоваваме на конкретните номера / букви на редове и колони, заобиколени от кавички.
Разбира се, можете също така да се позовавате на EntireRow на диапазон:
1 | Диапазон ("a1: a10"). EntireRow.Delete |
Забележка: Примерите по -долу демонстрират само изтриване на редове, но както можете да видите по -горе, синтаксисът е почти идентичен за изтриване на колони.
Изтриване на празни / празни редове
Този пример ще изтрие ред, ако целият ред е празен:
1234567891011 | Sub DeleteRows_EntireRowBlank ()Затъмняване на клетката като обхватЗа всяка клетка в обхвата ("b2: b20")Ако Application.WorksheetFunction.CountA (cell.EntireRow) = 0 Тогаваcell.EntireRow.DeleteКрай АкоСледващата клеткаEnd Sub |
Той използва функцията на работния лист на Excel: COUNTA.
Изтриване на ред, ако клетката е празна
Това ще изтрие ред, ако конкретна колона в този ред е празна (в този случай колона B):
1 | Range ("b3: b20"). SpecialCells (xlCellTypeBlanks) .EntireRow.Delete |
Изтриване на ред въз основа на стойността на клетката
Това ще премине през диапазон и ще изтрие редове, ако определена стойност на клетката в този ред казва „изтриване“.
1234567891011 | Sub DeleteRowswithSpecificValue ()Затъмняване на клетката като обхватЗа всяка клетка в обхвата ("b2: b20")Ако cell.Value = "изтриване" Тогаваcell.EntireRow.DeleteКрай АкоСледващата клеткаEnd Sub |
Още примери за изтриване на редове и колони
Изтриване на дублирани редове
Този код ще изтрие всички дублирани редове в диапазон:
1 | Диапазон ("b2: c100"). RemoveDuplicates колони: = 2 |
Забележете, че задаваме колони: = 2. Това казва на VBA да проверява и първите две колони с данни, когато обмисля дали редовете са дубликати. Дубликат се открива само когато и двете колони имат дублирани стойности.
Ако бяхме задали това на 1, само първият ред щеше да бъде проверен за дублиращи се стойности.
Изтрийте редовете на таблицата
Този код ще изтрие втория ред в таблица, като се позовава на ListObjects.
1 | ThisWorkbook.Sheets ("Sheet1"). ListObjects ("list1"). ListRows (2) .Delete |
Изтриване на филтрирани редове
За да изтриете само редове, които са видими след филтриране:
1 | Range ("b3: b20"). SpecialCells (xlCellTypeVisible) .EntireRow.Delete |
Изтриване на редове в диапазон
Този код ще изтрие всички редове в обхвата:
1 | Диапазон ("a1: a10"). EntireRow.Delete |
Изтриване на избрани редове
Този код ще изтрие всички избрани редове:
1 | Selection.EntireRow.Delete |
Изтриване на последния ред
Това ще изтрие последния използван ред в колона B:
1 | Клетки (Rows.Count, 2) .End (xlUp) .EntireRow.Delete |
Като промените 2 на 1, можете да изтриете последния използван ред в колона А и т.н.
1 | Клетки (Rows.Count, 1) .End (xlUp) .EntireRow.Delete |
Изтриване на колони по номер
За да изтриете колона по нейния номер, използвайте код като този:
1 | Колони (2). Изтрий |