Excel vba удалить строку - Учим Эксель

Макрос для выделения и удаления пустых строк в Excel

Начальные коды макросов для выделения, удаления, скрытия и прибавления пустых строк в таблицу Excel по условию юзера.

Как выделить все пустые строчки макросом

Есть таблица годичного бюджета, разбитая на отдельные группы статей расходов и кварталы. Любая группа статей расходов разбита меж собой пустыми строчками:

Таблица бюджета.

Нам нужно удалить все пустые строчки в таблице. Для этого поначалу нужно их выделить. Если выделять вручную, то будет нужно много времени и сил. Не считая того, необходимо еще быть уверенным что строчка вправду является пустой, чтоб вкупе с ней не удалить важную информацию из бюджета либо формулу. Для автоматического решения данной задачки лучше написать собственный макрос, который сам проверит и выделит все пустые строчки в таблице годичного бюджета.

Откройте редактор Visual Basic (ALT+F11):

редактор Visual Basic.

И воздайте в нем новейший модуль для текущей книжки «Insert»-«Module», а позже запишите в него последующий VBA-код макроса:

VBA-код макроса.

Сейчас если нам необходимо автоматом выделить все пустые строчки в таблице бюджета перед тем как их удалить, изберите инструмент: «РАЗРАБОТЧИК»-«Код»-«Макросы»-«SelectLine»-«Выполнить». В итоге выделяться все пустые ячейки лишь для пустых строк снутри начальной таблицы.

Пример работы первого VBA-кода:

Выделить пустые строки.

Пустые строчки, которые находиться под крайними заполненными ячейками не будут выделены. Сейчас для удаления выделенных строк юзеру осталось лишь избрать инструмент: «ГЛАВНАЯ»-«Ячейки»-«Удалить»-«Удалить строчки с листа». Либо надавить комбинацию жарких кнопок CTRL+=. А опосля в показавшемся окне «Удаление ячеек» избрать опцию «строку» и надавить ОК.

Сначала кода присваиваем для переменной diapaz1 спектр ячеек в границах меж A1 и крайней применяемой ячейкой на рабочем листе Excel.

Примечание. Крайняя применяемая ячейка на листе — это неважно какая ячейка для, которой были выполнены любые конфигурации: ввод значений, изменение формата границ либо цвета фона и т.п.

Дальше в цикле проверяются все строчки в этом спектре, любая по отдельности, на количество непустых ячеек. В том случаи если способ CountA возвращает значение 0, то адреса этих ячеек дополняют несмежный спектр в переменной diapaz2 еще на одну пустую строку.

В конце макроса выделяются все пустые строчки, находящиеся снутри спектра определенным переменной diapaz2. Если же таблица не сдержит ни одной пустой строчки, тогда выводиться соответствующее сообщение.

Макрос для удаления пустых строк

Как удалить строку макросом? Если необходимо создать так чтоб макрос автоматом не только лишь выделял, да и сам удалял пустые целые и смежные спектры ячеек без использования остальных инструментов, тогда в конце кода для переменной diapaz2.Select следует поменять способ на [Delete]:

Пример второго VBA-кода:

Пример второго VBA-кода удалить.

Макрос для скрытия пустых строк

Как скрыть пустые строчки макросом? Но если для вас необходимо не удалить, а лишь скрыть (к примеру, при подготовке документа на печать), тогда эту строку кода следует видоизменять чуть по другому:

Пример третьего VBA-кода:

Пример третьего VBA-кода скрыть.

Добавление строк макросом

Как вставить строчки макросом? Если мы изменим код в этом же месте как показано ниже, то получиться инструмент для прибавления и вставки строк опосля пустых:

Пример 4-ого VBA-кода:

Пример четвертого VBA-кода добавить.

Если же вы желаете, чтоб макрос работал только лишь для пустых строк за ранее выделенного определенного спектра листа перед пуском макроса, то сначала макроса следует поменять строку сотворения экземпляра объекта для переменной diapaz1, на:

Set diapaz1 = Selection

Внимание! Следует держать в голове о том, что если таковым образом создавать экземпляр объекта для переменной diapaz1, то тогда недозволено перед пуском макроса выделять все ячейки листа либо все ячейки хоть какого столбца. По другому это затормозит программку Excel, потому что один лист содержит аж 1 048 576 строк тогда и все они будут обрабатываться макросом, а юзер будет ожидать.

Интересно почитать:  Excel vba преобразование строки в число

Макросы для Excel. Как сделать и как удалить макрос в Excel?

Обычно, знакомство с языком VBA начинается с выполнения простых программ, именуемых макросами. С помощью их можно выполнить такие функции, как удаление листа либо строчки в Excel. В предстоящем приобретенные познания можно применять для написания наиболее сложных программ.

Что такое макрос и для чего он нужен?

Это особая программка, написанная на языке VBA для выполнения каких-то функций в приложении MS Office. Можно пользоваться уже готовым решением, которое просто отыскать на просторах сети Веб, или написать такую программку без помощи других. С сиим может совладать даже человек, полностью незнакомый с языком VBA. Довольно надавить клавишу «Записать макрос», выполнить некие деяния, которые потом можно повторить, просто запустив данный макрос, и впору надавить клавишу «Стоп».

Удаление листа Excel

Делается это последующим образом:

  • Создаем новейший документ Excel (на примере Excel 2010).
  • Вставляем несколько листов и вносим в их произвольные данные.

Лист Excel с данными

  • Чтоб открыть редактор VBA, жмем Alt+F11.
  • Для вставки новейшего модуля (фактически, это и есть макрос) перебегаем на вкладку Insert (Вставить) и избираем Module.
  • Вставляем код:
  • Закрываем окно редактирования макроса.
  • Закрываем редактор VBA.
  • Сохраняем книжку как документ с поддержкой макросов.
  • Открываем сохраненный документ.
  • Перебегаем «Вид-Макросы-Макросы» и избираем DeleteSheet.
  • Жмем «Выполнить». Покажется предупредительное сообщение о том, что в ячейках данного листа могут существовать данные. Чтоб удалить лист Excel макросом, жмем на клавишу «Удалить».
  • Для удаления листа без предупредительного сообщения в код макроса нужно добавить две строки:

Удаление строк в Excel

Лист Excel после удаления первой строки

Сейчас поглядим, как удалить строчки макросами Excel. Для начала уберем одну строку. Чтоб модуль легче было находить, так его и назовем – DeleteRow.

Опосля выполнения макроса в Excel удалится строчка под первым номером. Другие сдвинутся ввысь. Для удаления нескольких меняем вторую строку кода на последующую:

В этом случае будут удалены строчки со 2-ой по пятнадцатую.

Лист Excel после удаления строк 2-15

Удаление

Макросы являются программками и могут причинить значимый вред компу. Сейчас разглядим, как удалить макрос в Excel.

Открываем вкладку «Вид», жмем на «Макросы», избираем верхнюю строку под заглавием «Макросы», избираем подлежащий удалению и жмем подобающую клавишу.

Процесс удаления макроса в Excel 2003 имеет одну изюминка. Чтоб стопроцентно убрать его, необходимо будет вручную очистить все модули. Для этого необходимо зайти в редактор Visual Basic.

Удаление макросов программным методом

Последующий метод, как можно удалить макрос в Excel, заключается в использовании надстройки – специальной программки, которая устанавливается раздельно и содержит внутри себя несколько модулей для выполнения разных функций. Одной из таковых надстроек является Kutools. При помощи данной программки можно сразу удалить все макросы Excel.

Данная надстройка имеет наиболее 300 разных функций. Отметим некие достойные внимания функции:

  • преобразование обыденных чисел в римские и назад;
  • преобразование валюты с внедрением животрепещущих курсов валют;
  • преобразование единиц измерения;
  • поиск ячеек с определенным форматированием;
  • удаление пустых листов, строк, столбцов.

При наличии большенный базы макросов можно сделать свою надстройку. Благодаря этому можно будет разграничить «свои» и «чужие» (Excel будет им автоматом доверять).

Что созодать, если он хранится в Личной книжке? Как удалить макрос в Excel в этом случае? Сначала необходимо показать скрытое окно. Для этого следует избрать вкладку «Вид» и в группе «Окно» надавить клавишу «Показать». В предстоящем процедура удаления макроса включает обычные шаги.

Интересно почитать:  Заглавные в строчные в excel

Принципиально отметить, что при удалении через вкладку «Вид» раскрывается окно просмотра макросов. По дефлоту избран пункт «Находится во всех открытых книжках». Как удалить макрос в Excel лишь для 1-го документа? Необходимо избрать соответственный пункт в меню «Находится»: или «Эта книжка», или пункт меню с заглавием данного документа.

How to Delete Entire Row in Excel Using VBA (Examples)

Adding and deleting rows is part of everyday common tasks when working with Excel.

While you can do this easily from the worksheet itself, sometimes you may want to use the VBA route to delete rows in Excel. These could be deleting a specific row, multiple rows in the selection, deleting alternate rows or those that have a specific value in it.

In this tutorial, I will show you how to delete rows in Excel using VBA (multiple scenarios).

So let’s get started!

This Tutorial Covers:

Delete an Entire Row using VBA

To delete an entire row in Excel using VBA, you need to use the EntireRow.Delete method.

For example, if you want to delete the entire first row in a worksheet, you can use the below code:

The above code first specifies the row that needs to be deleted (which is done by specifying the number in bracket) and then uses the EntireRow.Delete method to delete it.

You can also delete multiple rows by specifying these rows in the code.

For example, the below code will delete row number 1, 5 and 9 in the worksheet:

The above code uses the same logic, where it specifies the row numbers and Excel will delete these rows one by one.

Delete All Rows in the Selection

In case you want to delete all the rows in a selected range of cells, you can use the VBA macro code below:

The above code applies to the EntireRow.Delete method to the entire selection.

Delete Alternate rows (or Delete Every Third/Fourth/Nth Row)

Sometimes, you may get a data dump where every second row (or third, fourth or Nth rows) is useless and needs to be deleted.

I used to work with financial data where every second row was empty and had to be deleted.

This is the type of scenario where VBA really shines.

Below is the VBA code that will go through all the rows in the selection and delete every second row:

Let me explain how this VBA code works.

First, I have used a variable RCount to get the total number of rows in the selection.

Then I have used a For Next loop to run this as many times as many rows are there. For example, if there are 12 rows, this loop will run from 12 to 1 (i.e., 12 times). It’s important to run this from the last row in the selection to the first as we don’t want the row numbers to change when a row is deleted.

Also, Step -2 is used since we need to delete every other row (from bottom to top). In case you want to delete every third row, you can use -3.

Within the VBA loop, I have used the Selection.Rows(i).EntireRow.Delete method to delete every alternate row.

Delete Blank Rows with VBA

You can also use the EntireRow.Delete method to delete all blank rows.

Below is the VBA code that will select blank cells in the selected dataset and delete the entire row.

Интересно почитать:  Сквозные строки excel

The above code uses the SpecialCells property to select and delete all the cells that are blank. This is the same method that also allows us to use ‘Go To Special’ dialog box to select all blank cells.

Once these blank cells are identified using SpecialCell, these are then deleted using the EntireRow.Delete method.

Delete Rows with a Specific Word/Value

You can also use a simple VBA code to go through each cell in the selected range and delete all the rows where a cell contains a specific text or value.

For example, suppose you have a dataset and I want to delete all cells that have the text Printer in column 2 of the selection.

Dataset from where delete entire row with specific value

Below is the code that will do this:

The above code first counts the total number of rows in the selection. This will make sure the loop is run only these many times. It then uses the ‘For Next loop’ to go through all the cells in Column 2.

The IF THEN ELSE statement is then used to check the value in each cell in column 2. And in case the value/text matches the specified text (which is ‘Printer’ in this example).

In this example, I have checked whether the text matches a specific string or not. You can also do this with values. For example, you can delete all rows where the sale value is less than 1000 or more than 1000.

Note: An important thing to note here is that the loop runs from Selection.Rows.Count To 1 to make sure when a row is deleted, it doesn’t impact the rows above it.

How to Use This VBA Code

Now let me show you how to use all the codes mentioned in this tutorial to delete the entire row.

You need to copy and paste these codes in a module in Excel VB Editor. Once you have these codes copied, you can then run the macro codes.

Below are the steps to copy and paste these VBA codes in a module:

  1. Hold the ALT key and press the F11 key (or Function + Option + F11 in Mac). This will open the VB Editor
  2. In the VB Editor, you will have the project explorer on the left. If you don’t see it, go to the View option and then click on Project Explorer.Click on Project Explorer
  3. Right-click on any object in the Project Explorer (for the workbook in which you want to run the code).Insert Module
  4. Go to Insert and then click on Module. This will insert a new Module for the workbookCopy and paste to delete entire row in the module
  5. Copy and Paste the above codes in the module.

And to run these codes, you can place the cursor anywhere in the code (that you want to run) and hit the F5 key (or click on the green triangle in the VBA toolbar).

I have also written a detailed tutorial on different ways to run VBA macro codes in Excel.

So these were some VBA codes that you can use to delete entire rows in Excel (in different scenarios). The same logic can also be applied in case you want to delete columns instead of rows (with the corresponding adjustment in the code examples).

Ссылка на основную публикацию
Adblock
detector