Удалить столбец Vba excel

Обновлено: 04.07.2024

В этой статье мы увидим, как удалять столбцы в Excel с помощью VBA.

Пример 1. Удаление всего столбца на листе с использованием номера столбца:

Скажем, данные Excel имеют форму ниже, и вам нужно удалить столбец за 18 мая, т. е. столбец G

Вот код. Нам нужно указать номер удаляемого столбца и использовать .EntireColumn.Delete для удаления всего столбца

Вот как будут выглядеть данные после выполнения приведенного выше кода

Пример 2. Удаление всего столбца на листе с использованием буквы столбца:

Вы также можете использовать букву столбца вместо номера столбца, чтобы удалить его. Таким образом, конечный результат в приведенном выше примере также может быть достигнут с помощью приведенного ниже кода:

Пример 3. Удаление нескольких столбцов на листе:

Вы также можете удалить несколько столбцов в одном операторе удаления. Вот код, который удалит столбцы с D по F (с 4 по 6):

Вывод будет выглядеть так

Пример 4. Удаление несмежных нескольких столбцов на листе:

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

Обратите внимание, что в данном случае мы использовали «Диапазон» для указания столбцов вместо «Столбцы».

После запуска кода данные будут выглядеть так.

Пример 5. Удаление столбца в таблице:

Данные (отправная точка) для этого примера — это таблица, как показано на снимке ниже. Имя таблицы «Таблица1»

Если вы хотите удалить столбец "Адрес" (т. е. столбец F листа), вам нужно использовать приведенный ниже код:

Важно отметить, что при удалении столбца из таблицы необходимо указать номер столбца относительно первого столбца таблицы. Столбец «Нет» — это первый столбец, «Заголовок» — второй и так далее. В нашем случае мы хотим удалить 5-й столбец таблицы (6-й лист). Итак, мы использовали «ListColumns(5)»

Вот как будет выглядеть таблица после выполнения кода

Пример 6. Удаление нескольких столбцов в таблице:

Чтобы удалить столбцы, скажем, 5 и 6 из таблицы, мы можем использовать цикл for, как показано ниже

Поскольку мы собираемся удалить 2 столбца, цикл for повторяется дважды. Здесь следует отметить, что в обеих итерациях мы удаляем столбец 5. Это связано с тем, что после первого выполнения оператора удаления столбца столбец 6 будет сдвинут влево на позицию 5. Следовательно, при втором выполнении , столбец города теперь находится на позиции 5 и удален корректно.

Это полезно, когда вам нужно удалить определенный столбец и другой столбец, смежный с ним

Того же результата можно добиться без использования цикла for, как показано ниже:

Обратите внимание, что сначала мы удаляем столбец 6, чтобы положение второго удаляемого столбца не менялось. Вывод будет выглядеть следующим образом:

Пример 7. Удаление столбца в таблице на основе заголовка столбца:

В этом последнем примере мы увидим, как удалить столбец из таблицы, если вы знаете имя заголовка столбца, а не его позицию. Итак, мы удалим столбец «Город» в приведенном ниже коде.

Здесь мы запускаем цикл for по всем столбцам таблицы. Количество столбцов в таблице задается «tbl.ListColumns.Count». Поскольку нам нужно удалить один столбец, мы запустили счетчик с 1. Если вам нужно удалить несколько столбцов, вам нужно начать с последнего столбца. Также удалите оператор выхода для в этом случае

Условие if проверяет, соответствует ли имя текущего столбца (используя tbl.ListColumns(i).Name) имени удаляемого столбца. Если это так, этот столбец удаляется.

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

Дополнительную информацию о таблицах см. в статье VBA, Word Table Insert/Remove Rows/Columns

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

Удалить столбец Excel VBA

Мы выполняем множество действий в Excel, таких как вырезание, копирование, вставка, добавление, удаление, вставка и многое другое, что мы делаем на регулярной основе. Мы можем использовать все эти действия, используя VBA Coding. Одной из важных концепций, которые нам нужно изучить, является «удаление столбца» в VBA. В этой статье мы покажем вам, как использовать этот параметр «Удалить столбец» в VBA.

Что делает удаление столбца в Excel VBA?

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

Удалить столбцы очень просто. Во-первых, нам нужно использовать свойство COLUMNS для выбора столбца, поэтому ниже приведен синтаксис метода удаления столбца в VBA.

Столбцы (Ссылка на столбец).Удалить

Итак, мы можем построить такой код:

Это удалит столбец номер 2, то есть столбец B.

Если мы хотим удалить несколько столбцов, мы не можем вводить столбцы. Нам нужно ссылаться на столбцы по заголовкам столбцов, то есть по алфавиту.

Это удалит столбец от A до D, т. е. первые 4 столбца.

Подобным образом мы можем использовать метод «Удалить столбец» в VBA для удаления определенных столбцов. В следующем разделе мы увидим больше примеров, чтобы лучше понять это. Читайте дальше.

VBA Удалить столбец

Примеры метода удаления столбцов Excel VBA

Ниже приведены примеры удаления столбцов с помощью VBA.

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

 Пример удаления столбца VBA 1

Если мы хотим удалить месяц столбца «Мар», сначала выберите свойство столбцов.

Код:

Пример удаления столбца VBA 1-1

Укажите номер столбца или алфавит. В данном случае это либо 3, либо C.

Код:

Пример удаления столбца VBA 1-2

Используйте метод Удалить.

Код:

Пример удаления столбца VBA 1-3

Или вы можете ввести адрес столбца следующим образом.

Код:

Пример удаления столбца VBA 1-4

Запустите этот код, нажав клавишу F5, или вы можете запустить его вручную и посмотреть результат.

Оба кода будут выполнять одинаковую работу по удалению указанного столбца.

Пример удаления столбца VBA 1-6

Если мы хотим удалить несколько столбцов, нам нужно упомянуть их в алфавите. Здесь нельзя использовать номера столбцов.

Если мы хотим удалить столбцы со 2 по 4, мы можем передать код, как показано ниже.

Код:

Пример удаления столбца VBA 1-7

Запустите этот код вручную с помощью параметра запуска или нажмите клавишу F5. Это приведет к удалению столбцов «Фев», «Мар» и «Апрель».

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

Если вы не упомянули имя рабочего листа, то какой бы лист ни был активен, он удалит столбцы этого листа.

Во-первых, нам нужно выбрать рабочий лист по его имени.

Код:

 Пример удаления столбца VBA 2

Код:

Пример удаления столбца VBA 2-1

При этом будут удалены столбцы с B по D рабочего листа «Лист продаж». Для этого кода не имеет значения, какой из них активен. Тем не менее, он удалит только указанные столбцы этого листа.

Код:

Пример удаления столбца VBA 2-2

При этом также удаляются столбцы «B–D» без выбора рабочего листа «Лист продаж».

Предположим, что у вас есть данные с альтернативными пустыми столбцами, как показано ниже.

VBA DC Example 3

Итак, удалите все альтернативные столбцы, которые мы можем использовать в приведенном ниже коде.

Код:

Пример VBA DC 3-1

Запустите этот код с помощью клавиши F5 или вручную. Затем он удалит все альтернативные пустые столбцы, и наши данные будут выглядеть так.

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

 Пример VBA DC 4

Все ячейки желтого цвета пусты. Итак, мое требование - удалить все столбцы пустых ячеек. Код ниже сделает это.

Код:

Пример VBA DC 4-1

Позвольте мне объяснить вам этот код построчно.

Наши данные расположены от A1 до F9, поэтому сначала мне нужно выбрать этот диапазон, и приведенный ниже код сделает это.

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

Далее будут выбраны все пустые ячейки, и при выделении мы удаляем весь столбец выделения.

Итак, наш конечный результат будет выглядеть так.

Пример VBA DC 4-2

Везде, где он нашел пустую ячейку, он удалил эти пустые ячейки из всего столбца.

Вы можете загрузить этот столбец удаления Excel VBA здесь — Шаблон удаления столбца VBA

Рекомендуемые статьи

Это руководство по удалению столбца VBA. Здесь мы изучаем 4 различных метода удаления столбцов с помощью кода Excel VBA, а также практические примеры и загружаемые коды. Ниже приведены некоторые полезные статьи Excel, связанные с VBA –

Недавно мы показали вам, как скрыть столбцы (и строки), что помогает сделать электронные таблицы более удобочитаемыми. Однако иногда может потребоваться полностью удалить столбец, а не просто скрыть его. В этом посте мы научим вас, как полностью удалить столбцы.

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

Очистить или удалить

Первый вопрос, который нужно задать перед использованием метода .Delete для столбца (или любого диапазона, на самом деле), заключается в том, может ли .Clear быть более подходящим. Удаление столбцов с большей вероятностью приведет к ошибкам в формулах и непредвиденным последствиям, поскольку объекты и данные смещаются влево по листу.

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

Во многих случаях .Clear сделает то, что вам нужно, и с меньшей вероятностью нанесет ущерб вашему листу. Тем не менее, .Delete имеет правомерное использование, и, безусловно, есть несколько ситуаций, в которых предпочтение отдается удалению столбца, а не его очистке. Одним из таких случаев может быть удаление всех промежуточных столбцов перед отправкой окончательных результатов клиенту.

Удаление одного столбца

Важно понимать разницу между одним объектом Column и набором объектов Column. Термин «Столбец» в единственном числе относится к одному столбцу, а «Столбцы» во множественном числе относится к набору всех столбцов на любом конкретном листе. Чтобы сослаться на любой столбец, необходимо указать его индекс в коллекции. Логически индекс в коллекции соответствует месту на странице, поэтому столбец C , третий столбец, будет иметь индекс 3 .

Таким образом, чтобы удалить один столбец, скажем, столбец Z, 26-й столбец, просто укажите его в коллекции и используйте метод .Delete:

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

Создавайте мощные макросы с помощью нашего бесплатного комплекта разработчика VBA

Такой макрос легко скопировать и вставить, но создать его самостоятельно сложнее. Чтобы помочь вам создавать макросы, подобные этому, мы создали бесплатный комплект разработчика VBA и написали Большую книгу макросов Excel VBA, полную сотен готовых макросов, которые помогут вам освоить файловый ввод-вывод, массивы, строки и многое другое. скопируйте ниже.

Удаление нескольких столбцов

Поскольку ссылка на индекс в коллекции Columns указывает на один объект Column, мы не можем использовать один индекс для ссылки более чем на один столбец. Разделение индексов запятой вызовет ошибку:

 Сообщение об ошибке для столбцов, разделенных запятыми


Сообщение об ошибке при попытке разделить столбцы запятыми

Существует два способа сослаться на более чем один столбец для удаления: один — использовать стиль буквенной ссылки, а другой — создать всеобъемлющий объект диапазона.

Стиль буквенной ссылки

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

Построить диапазон

Если вам нужно программно определить столбцы для удаления, не очень полезно жестко кодировать столбцы в стиле буквенной ссылки. В этом случае лучше использовать стиль числовой ссылки. Однако вы не можете просто перечислить номера столбцов в вызове коллекции Columns, так как это приводит к указанной выше ошибке. Вместо этого вы должны создать диапазон и вызвать .Delete для этого диапазона.

Чтобы построить диапазон, просто оберните объекты Column строкой Range:

где firstColumn и lastColumn — целые числа, которые необходимо установить перед обработкой этой строки.

Range() всегда охватывает всю область, поэтому, если вам нужно удалить столбцы с 1 по 3 и столбцы с 6 по 8, вам понадобятся два объекта Range, один для первого набора и один для второго комплекта. Вы можете комбинировать диапазоны с помощью VBA Union, чтобы ваш код по-прежнему можно было написать одной строкой, например:

Команда Union — это способ удаления несмежных столбцов с помощью VBA.

Необязательный параметр сдвига

Для метода .Delete существует необязательный параметр: [Shift] . Когда определенная ячейка удаляется, окружающие ячейки должны либо сместиться вверх, чтобы заполнить пространство, либо влево, чтобы заполнить пространство. Например, если ячейка B3 удалена, либо ячейки в столбце B должны сместиться вверх, либо ячейки в строке 3 должны сместиться влево. В этом случае программист может выбрать, что произойдет с xlShiftUp и xlShiftToLeft .

Однако для Columns().Delete это не имеет значения. Поскольку удаляется весь столбец, единственный вариант для Excel — сдвинуть остальные столбцы за ним влево. Таким образом, когда вы удаляете столбец (или строку), нет необходимости назначать значение для Shift .

Что происходит со ссылками

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

Суть в том, что вы должны проявлять осторожность при использовании .Delete . Вы не хотите уничтожать книгу из 10 листов и должны проходить процесс восстановления файлов, скрестив пальцы.

Чтобы узнать больше советов по VBA, подобных этому, подпишитесь, заполнив форму ниже.

Готовы делать больше с VBA?
Мы собрали гигантский PDF-файл с более чем 300 готовыми макросами и хотим, чтобы вы получили его бесплатно. Введите свой адрес электронной почты ниже, и мы вышлем вам копию вместе с нашим комплектом разработчика VBA, полным советов, приемов и ярлыков VBA.

Прежде чем мы начнем, я хочу сообщить вам, что мы разработали набор шпаргалок по VBA, чтобы вам было проще писать лучшие макросы. Мы включили более 200 советов и 140 примеров макросов, поэтому в них есть все, что вам нужно знать, чтобы стать лучшим программистом VBA.

Эта статья была написана Кори Сарвером, автором статей для блога VBA Tutorials. Посетите его в LinkedIn и на его личной странице.

 Удалить столбец VBA

Копировать, вставить, вырезать, удалить, вставить — вот некоторые из распространенных операций, выполняемых в Excel. Самый простой способ сделать это — использовать сочетания клавиш или встроенные функции. Но когда вы хотите выполнить операцию одним щелчком мыши или автоматически, VBA — это решение. Мы можем автоматизировать эти задачи, используя макросы Excel. VBA также предоставляет различные методы, аналогичные функциям Excel. Это гладко выполняет эти задачи в VBA.

Метод удаления столбцов используется для удаления одного или нескольких столбцов в Excel VBA. Свойство удаления столбцов используется вместе с индексом столбца.

Оценка, Hadoop, Excel, мобильные приложения, веб-разработка и многое другое.

Синтаксис для удаления столбца в Excel VBA

Синтаксис для удаления столбца в Excel показан ниже.

  • Где ссылка на столбец — это номер столбца, который вы хотите удалить.
  • Столбцы([RowIndex], ColumnIndex]) здесь также принимается диапазон столбцов.

Synatx of Столбец

Как удалить столбец в Excel с помощью VBA?

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

Из базы данных посещаемости указано время ухода некоторых сотрудников из офиса. Это данные за одну неделю, с понедельника по пятницу.

VBA Пример удаления столбца 1-1

Мы хотим удалить столбец Friday.

Выполните следующие действия, чтобы удалить столбец в Excel.

Все в одном пакете Excel VBA (более 120 курсов) Более 120 онлайн-курсов | 500+ часов | Поддающиеся проверке сертификаты | Пожизненный доступ
4,9 (2356 оценок)

Шаг 1: Итак, сначала мы можем создать простую функцию как dele(), так как удаление является ключевым словом, которое не является предпочтительным.

Код:

Шаг 2. Теперь воспользуемся свойством столбцов для удаления.

Код:

В столбцах() упоминается ‘6’, поскольку указанный столбец является шестым столбцом в таблице.

Шаг 3. Запустите этот код, нажав F5 или кнопку "Выполнить", и посмотрите результат.

Если вы посмотрите на таблицу, она будет выглядеть так, как показано ниже. Где столбец Friday был удален.

Результат примера 1-5

Еще один простой способ выполнить удаление — указать ссылку на столбец в алфавитном порядке.

VBA Пример удаления столбца 2

Выполните следующие шаги, чтобы удалить столбец в Excel с помощью VBA.

Шаг 1. Поскольку пятница – это столбец F, укажите в коде адрес столбца, как показано ниже.

Код:

При использовании алфавита не забывайте ставить алфавит в двойные кавычки.

Шаг 2. Запустите этот код, нажав F5 или кнопку "Выполнить", и просмотрите результат.

Это удалит столбец Friday из таблицы.

В той же таблице, если вы хотите удалить более одного столбца, необходимо указать диапазон столбцов.

Выполните следующие шаги, чтобы удалить последние два столбца в Excel.

Шаг 1. Код можно изменить, как показано ниже.

Код:

VBA Пример удаления столбца 3-1

Диапазон указан как "E:F", и это приведет к удалению столбца от F до G.

Шаг 2. Запустите этот код, нажав F5 или кнопку "Выполнить", и просмотрите результат.

Последние два столбца удаляются.

Давайте посмотрим, что произойдет, если мы удалим средние столбцы в таблице.

Выполните следующие шаги, чтобы удалить средние столбцы в таблице.

Шаг 1. Код можно изменить, как показано ниже.

Код:

VBA Пример удаления столбца 4-1

Здесь "B:C" относится к столбцу понедельник и вторник.

Шаг 2. Запустите этот код, нажав F5 или кнопку "Выполнить", и просмотрите результат.

После запуска кода, если вы посмотрите на таблицу, вы увидите столбец после «B:C», сдвинутый справа налево.

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

Два листа содержат сведения о сотрудниках за два месяца, январь и февраль. Поскольку на одном листе больше одного листа, во избежание ошибок лучше указать имя листа.

Выполните следующие шаги, чтобы удалить столбец в Excel с помощью VBA.

Шаг 1. Лист следует выбрать с помощью кода.

Код:

VBA Пример удаления столбца 5-1

Шаг 2. Теперь необходимо указать код для удаления столбца.

Код:

VBA Пример удаления столбца 5-2

Шаг 3. Запустите этот код, нажав F5 или кнопку "Выполнить", и посмотрите результат.

Лист «Январь» будет выбран, а столбцы B, C, т. е. понедельник, вторник, будут удалены из таблицы.

Удаление нескольких столбцов с помощью объекта диапазона в VBA

Объект диапазона также используется для удаления столбца в VBA вместо удаления столбца. Если используется объект диапазона, код будет выглядеть так, как показано ниже.

Диапазон («B:C») представляет собой диапазон столбцов, которые необходимо удалить.

Удаление одного столбца с помощью объекта диапазона

Чтобы удалить один столбец с помощью объекта диапазона, необходимо указать диапазон, как показано ниже.

Диапазон («B: B») указывает на один столбец, и он будет удален.

Что нужно помнить

  • Столбец можно указать с помощью номера столбца или соответствующего алфавита при удалении.
  • При удалении нескольких столбцов числа не будут приниматься в качестве ссылки на столбец.
  • Вместо свойства columns для удаления столбца в VBA можно использовать объект Range.

Рекомендуемые статьи

Это руководство по удалению столбца VBA. Здесь мы обсудили, как удалить столбец в Excel с помощью VBA, а также практические примеры и загружаемый шаблон Excel. Вы также можете ознакомиться с другими нашими рекомендуемыми статьями –

Читайте также: