Как удалить пустые столбцы

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

Как макрос работает

В этом макросе, мы используем свойство UsedRange объекта ActiveSheet, чтобы определить диапазон, с которым мы работаем. Свойство UsedRange дает диапазон, который охватывает ячейки, которые были использованы для ввода данных. Затем устанавливает счетчик, который начинается с последнего столбца, используемого диапазона, проверяя, весь ли столбец пуст. Если весь столбец действительно пуст, мы удалим столбец. Мы продолжаем делать то же самое для каждого цикла, каждый раз, когда приращение счетчика двигается к предыдущей колонке.

Код макроса

Sub UdalitPustieStolbci()
' Шаг 1: объявляем переменные
Dim MyRange As Range
Dim iCounter As Long
'Шаг 2: Определяем целевой диапазон 
Set MyRange = ActiveSheet.UsedRange
'Шаг 3: Запускаем обратный цикл через диапазон
For iCounter = MyRange.Columns.Count To 1 Step -1
'Шаг 4: Если весь столбец пуст, то удаляем его
If Application.CountA(Columns(iCounter).EntireColumn) = 0 Then
Columns(iCounter).Delete
End If
' Шаг 5: Увеличиваем счетчик
Next iCounter
End Sub

Как этот код работает

  1. Шаг 1 объявляет две переменные. Первая переменная является переменной объекта под названием MyRange. Это переменная объекта, который определяет целевой диапазон. Другая переменная является переменной Long Integer называется iCounter.
  2. Шаг 2 заполняет переменную MyRange со свойством UsedRange объекта ActiveSheet. Свойство UsedRange дает диапазон, который охватывает клетки, которые были использованы для ввода данных. Обратите внимание, что если мы хотим указать фактический диапазон или именованный диапазон, мы могли бы просто ввести свое название — Range («MyNamedRange»).
  3. На этом этапе макрос устанавливает параметры для нашего инкрементного счетчика, чтобы начать на максимальном количестве для диапазона (MyRange.Columns.Count) и заканчивается в 1 (первая строка выбранного диапазона). Обратите внимание, что мы используем Шаг-1 классификатор. Поскольку мы указываем шаг -1, Excel знает, что мы будем увеличивать счетчик в обратном направлении; перемещение назад один шаг на каждой итерации. В целом, Шаг 3 говорит Excel, что мы хотим, чтобы начать в последнем столбце выбранного диапазона, двигаясь назад, пока мы не получим в первом столбце диапазона. При работе с диапазоном, вы можете явно вызывать определенный столбец в диапазоне, передавая номер столбца индекса к коллекции Columns диапазона. Например, Range («A1: D17»). Columns(2) указывает на второй столбец в диапазоне (столбец B).
  4. На шаге 4, макрос использует переменную iCounter как номер индекса для коллекции Columns MyRange. Это помогает определить, каким именно столбцом мы работаем в текущем цикле. Макрос проверяет все ячейки в этом столбце, являются ли они пустыми. Если они есть, макрос удаляет весь столбец.
  5. На шаге 5, макрос возвращается к началу цикла увеличивать счетчик.

Как использовать

  1. Активируйте редактор Visual Basic, нажав ALT + F11.
  2. Щелкните правой кнопкой мыши personal.xlb в окне Project.
  3. Выберите Insert➜Module.
  4. Введите или вставьте код.

Оцените статью
Добавить комментарий