Ребята, всем привет! Продолжаем изучать Excel .
Иногда есть необходимость перед какими-то действиями сначала очистить лист Excel от всех данных , которые на нем есть, чтобы заполнить его новыми данными.
В этом уроке рассмотрим несколько вариантов решения позволяющих очистить лист при помощи VBA .
✍️ Если вы только начинаете осваивать VBA Excel мы уверены, каждый может найти для себя что-то новое!
✨ А прежде, чем мы начнем напомню, теперь у нас на канале есть удобный рубрикатор Быстрый поиск решения. Путеводитель по Excel , а все видео предыдущих уроков доступны и на YouTube.
Как очистить лист Excel при помощи VBA
Пусть имеем некоторые данные на листе «Лист1»
Рассмотрим примеры решения позволяющие очистить лист Excel при помощи VBA.
ВАЖНО! ПОМНИТЕ — Вы не можете отменить изменения, внесенные кодом VBA , поэтому мы рекомендуем вам сохранить резервную копию вашего набора данных перед запуском кода.
⏩ ВАРИАНТ 1. Очистка всех ячеек на листе включая форматирование
Для очистки всех ячеек на листе, а так же оформления ячеек (шрифт, фон и т.п.) можно использовать следующий код:
КАК ПЕРЕНЕСТИ ТЕКСТ ВНУТРИ ЯЧЕЙКИ В EXCEL
Метод Clear (Очистить)
В данном случае использован Метод Clear ( Очистить ).
Этот метод удаляет все объекты, входящие в некоторый объект или коллекцию объектов. Из списка и комбинированного списка Clear удаляет все элементы списков, т. е. делает их пустыми. Из элементов набор страниц и полоса вкладок им удаляются все страницы и вкладки.
Из коллекции элементов управления Controls метод Clear удаляет элементы, созданные при исполнении программы методом Add.
В результате будет выполнена очистка данных включая форматирование:
⏩ ВАРИАНТ 2. Очистка всех ячеек на листе не затрагивая форматирование
Если нужно очистить только данные на листе Excel , не затрагивая формат ячеек, можно сделать так
Заменяем Метод Clear ( Очистить ) на ClearContents
Метод ClearContents
Метод ClearContents очищает формулы и значения, содержащиеся в ячейках, представляемых объектом Range.
Данный метод очищает только содержимое ячеек, сохраняя их форматирование.
В результате будет выполнена очистка данных, но сохранено форматирование:
⏩ ВАРИАНТ 3.
VBA Excel. Range.Clear и другие методы очистки ячеек
Range – выражение, возвращающее диапазон ячеек.
Примеры использования
1. Удаление гиперссылки из ячейки A1
Cells(1, 1).ClearHyperlinks
2. Очистка диапазона A1:L50 от формул и значений
Range(«A1:L50»).ClearContents
3. Очистка всех свойств ячеек в столбцах A:K
Columns(«A:K»).Clear
4. Очистка форматирования ячеек в строках 1:20
Rows(«1:20»).ClearFormats
Методы очистки диапазонов ячеек в VBA Excel возвращают очищаемые свойства ячеек к значениям по умолчанию. К таким, как на вновь созданном стандартном рабочем листе. При любых методах очистки высота строк и ширина столбцов не изменяются.
Видео №60. Excel. Условное форматирование. Автоматическое окрашивание ячеек в разные цвета
Фразы для контекстного поиска: очистка ячеек, очистка ячейки, очистка формул, очистка от формул, удаление формул, очистка значений, удаление значений, очистка форматов, удаление форматирования, удаление форматов.
Содержание рубрики VBA Excel по тематическим разделам со ссылками на все статьи.
6 комментариев для “VBA Excel. Range.Clear и другие методы очистки ячеек”
Есть такая проблема:
1. В отдельном модуле написана процедура, которая при запуске и вводе в inputbox данных генерирует таблицу с данными. Вот перед каждой генерацией сделал так, чтобы содержимое листа , кроме первой строки (шапки), очищалось: Thisbooks.Worksheets(«Лист3»).Range(«A2»,Cells(lastRow, lastColumn).clear 2. На первом листе у меня как бы меню управления. Там кнопка, к которой привязана эта процедура.
При запуске выполнение процедуры доходит до строки с очисткой и уходит в ошибку 1004 run time error: Application-defined or object-defined error. При этом, если эту же процедуру запускать с кнопки, или через F5, но с открытого Лист3 — все отлично выполняется! Никак не могу додуматься в чем же проблема. Подскажите пожалуйста! P.S. В строке с кодом .clear действительно с маленькой буквы.
Почему то с большой не пишется, vba автоматом делает с маленькой.
Источник: vremya-ne-zhdet.ru
Как применить кнопку для очистки определенных ячеек в Excel?
Обычно вы можете удерживать клавишу Ctrl , чтобы выбрать несколько определенных ячеек, а затем очистить содержимое ячейки по мере необходимости. Если вам всегда нужно время от времени очищать эти конкретные ячейки, вы можете создать кнопку очистки, чтобы очистить их одним щелчком мыши. В этой статье я расскажу о том, как создать кнопку «Очистить все», чтобы очистить определенное содержимое ячеек.
Применить кнопку для очистки определенного содержимого ячеек с помощью кода VBA
Применить кнопку, чтобы очистить содержимое определенной ячейки с помощью Код VBA
Сначала вы должны создать кнопку формы, а затем применить код, наконец, привязать код к кнопке формы. Пожалуйста, сделайте следующее:
1 . Нажмите Insert > Shapes > Rectangles , чтобы выбрать фигуру Rectangle, а затем перетащите мышь, чтобы нарисовать кнопку прямоугольника в в любом месте листа, как вам нужно, см. снимок экрана:
2 . Затем введите текст и отформатируйте кнопку формы, как вам нужно, см. Снимок экрана:
3 . Затем вы должны вставить код VBA, удерживая клавиши ALT + F11 , чтобы открыть окно Microsoft Visual Basic для приложений . Нажмите Вставить > Module и вставьте следующий код в окно Module .
Код VBA: очистить содержимое определенных ячеек:
Примечание : в приведенном выше коде: указывает, что он очистит ячейки в диапазоне A2: A5 , а не только две ячейки по отдельности, вы можете добавить несколько диапазонов. , например Range (“B8”, “B12”). Удалите скрипт в коде, чтобы очистить его.
4 . Затем сохраните и закройте окно кода, а затем свяжите код с кнопкой формы, щелкните кнопку правой кнопкой мыши и выберите Назначить макрос в Назначить макрос . В диалоговом окне выберите кодовое имя Clearcells в списке Имя макроса и нажмите кнопку OK , чтобы закрыть это диалоговое окно. . См. Снимок экрана:
5 . И теперь, когда вы нажимаете кнопку Очистить все , определенные вами ячейки очищаются сразу, см. Снимок экрана:
Источник: frestage.ru