Как сделать кнопку очистить в excel
Вы можете оказаться в ситуации, когда просто хотите очистить все свои данные на листе Excel. Бывают случаи, когда вы хотите удалить определенные ячейки. В любом случае, это руководство даст вам хорошее представление о том, как можно очистить данные на листе с помощью кнопки макроса. Здесь мы очищаем все ячейки, кроме первой строки, в которой появится кнопка. Вам нужно будет активировать вкладку разработчика, если вы хотите продолжить работу с книгой Excel. Если у вас нет вкладки разработчика, узнайте, как ее добавить здесь.
Вставка кнопки
Щелкните вкладку разработчика и нажмите кнопку вставки. Появится раскрывающийся список с несколькими вариантами. Интересующая нас опция находится в верхнем левом углу в разделе управления формой. Щелкните этот выбор, чтобы вставить кнопку. Эти три шага показаны на скриншоте ниже.
Шаги по вставке кнопки
Теперь, удерживая левую кнопку мыши, перетащите прямоугольник в строку 1. После того, как контур кнопки будет нарисован, появится окно «Назначить макрос».
Рисование кнопки и начало записи
Начало записи макроса
После появления окна «Запись макроса» дайте макросу имя и нажмите кнопку «ОК». Появится другое окно, в котором вы сможете переименовать макрос, назначить ярлык, оставить заметки о макросе и записать. Здесь вы можете нажать на кнопку записи, чтобы начать запись ваших задач. Вы знаете, когда макрос записывается, на что указывает квадратная кнопка остановки в нижнем левом углу экрана. Если нажать эту кнопку остановки, макрос остановит запись.
Выберите область, которую нужно очистить
В этом примере я очищу всю книгу, кроме строки 1. Для выполнения этой задачи можно выбрать строку 2 и все строки ниже строки 2, нажав Ctrl + Shift + стрелка вниз.
Выбор всех строк
Удалить область
Остановить запись макроса
Теперь, когда запись закончена, кнопка должна наконец появиться. При нажатии этой кнопки очищается любой текст или форматирование под первой строкой. Имейте в виду, что это всего лишь один пример, и вы можете назначить кнопку для удаления только одной ячейки или десятка ячеек. В любом случае имеет смысл создать кнопку для удаления ячеек, которые обычно необходимо очистить.
Отформатируйте кнопку макроса
Чтобы отформатировать кнопку, щелкните ее правой кнопкой мыши и выберите «Управление форматом».
Выбор управления форматом
Появится окно с несколькими вариантами форматирования. Параметры вкладки определены в таблице ниже для справки. Внесите необходимые изменения в вашу кнопку.
Параметры форматирования кнопок
Параметры шрифта
Сохранение как книги с поддержкой макросов
Чтобы кнопки макросов работали, книга, в которую они вставлены, должна быть сохранена как книга с поддержкой макросов. Это файл с расширением .XLSM. Если книга сохранена как обычная книга Excel, макрос не будет работать вообще. Чтобы сохранить, щелкните вкладку файла и выберите «Сохранить как». После выбора места для сохранения файла убедитесь, что вы сохранили файл как книгу с поддержкой макросов из раскрывающегося меню.
Дополнительный ресурс
Для получения дополнительной помощи по этой теме просмотрите видео ниже с пошаговыми инструкциями.
Создание кнопки макроса для очистки всего рабочего листа
Эта статья точна и правдива, насколько известно автору. Контент предназначен только для информационных или развлекательных целей и не заменяет личного или профессионального совета по деловым, финансовым, юридическим или техническим вопросам.
Как очистить весь лист или указанный диапазон в Excel?
Эта статья покажет вам, как быстро очистить содержимое с форматированием ячеек всего листа или указанного диапазона или без него с помощью кода VBA в Excel.
Очистить весь лист с кодом VBA в Excel
Удивительный! Использование эффективных вкладок в Excel, таких как Chrome, Firefox и Safari!
Экономьте 50% своего времени и сокращайте тысячи щелчков мышью каждый день!
Приведенные ниже коды VBA помогут вам очистить весь лист с форматированием ячеек или без него.
1. нажмите другой + F11 , чтобы открыть Microsoft Visual Basic для приложений окно.
2. в Microsoft Visual Basic для приложений окна, нажмите Вставить > Модули, а затем скопируйте ниже код VBA в модуль.
Если вы просто хотите очистить содержимое ячейки, но сохранить форматирование, попробуйте этот код.
Код VBA: очистить весь лист без форматирования ячеек
Если вы хотите очистить и содержимое, и форматирование ячеек, этот код может вам помочь.
Код VBA: очистить весь лист с форматированием ячеек
Внимание: В коде Sheet4 - это имя рабочего листа, с которого вы очистите содержимое. Пожалуйста, измените его по своему усмотрению.
3. нажмите F5 или нажмите кнопку «Выполнить», чтобы запустить код.
Затем указанный рабочий лист с форматированием ячеек или без него немедленно очищается.
Очистить указанный диапазон с кодом VBA в Excel
Для очистки только указанного диапазона на листе вы можете попробовать следующий код VBA.
1. Откройте рабочий лист, из которого вы очистите указанный диапазон, затем нажмите другой + F11 , чтобы открыть Microsoft Visual Basic для приложений окно.
2. в Microsoft Visual Basic для приложений окна, нажмите Вставить > Модули, а затем скопируйте ниже код VBA в модуль.
Очистить диапазон, но сохранить форматирование, попробуйте этот код.
Код VBA: очистить указанный диапазон без форматирования ячеек
Очистить диапазон с форматированием ячеек, используйте этот код:
Код VBA: очистить указанный диапазон с форматированием ячеек
Внимание: A1: C10 - это диапазон, который вы очистите на листе.
3. нажмите F5 ключ или щелкните Run кнопку, чтобы очистить диапазон.
Как очистить содержимое текстового поля при нажатии в Excel?
Обычно для очистки старого содержимого текстового поля (элемент управления ActiveX) вы должны войти в текстовое поле, выбрать все содержимое и затем нажать клавишу Backspace или Delete. Как быстро очистить все содержимое текстового поля? Эта статья покажет вам метод VBA для быстрой очистки содержимого текстового поля, просто дважды щелкнув по нему.
Очистить содержимое текстового поля при нажатии с кодом VBA
Удивительный! Использование эффективных вкладок в Excel, таких как Chrome, Firefox и Safari!
Экономьте 50% своего времени и сокращайте тысячи щелчков мышью каждый день!
Следующий код VBA может помочь вам быстро очистить содержимое текстового поля при двойном щелчке по нему. Пожалуйста, сделайте следующее.
1. Если текстовое поле уже существует на листе, включите режим «Дизайн», нажав разработчик > Режим проектирования. Смотрите скриншот:
Или вы также можете вставить текстовое поле, нажав разработчик > Вставить > Текстовое поле (элемент управления ActiveX). Смотрите скриншот:
2. Щелкните текстовое поле правой кнопкой мыши и выберите Просмотреть код из контекстного меню. Смотрите скриншот:
3. В дебюте Microsoft Visual Basic для приложений В окне кода замените исходный код VBA в окне кода приведенным ниже кодом VBA.
Код VBA: очистить содержимое текстового поля при двойном щелчке по нему
Внимание: В коде TextBox1 - это имя текстового поля, из которого вы очищаете содержимое. Пожалуйста, измените его на свой собственный.
4. нажмите другой + Q ключи для выхода из Microsoft Visual Basic для приложений окно.
5. Выключите режим дизайна.
С этого момента при двойном щелчке по текстовому полю его содержимое будет немедленно очищено.
Как создать такую волшебную КНОПКУ, нажав на которую можно очистить нужные ячейки в моей таблице, которые находятся в разных строка и разных столбцах, можно сказать разбросаны по всей таблице?
Объясню на примере:
Есть бланк заказа, с множеством ячеек: ФИО, тел., марка машины, прайс по услугам и т.д….много необходимой информации о клиенте.
После ввода данных и расчета стоимости по одному клиенту, хочу иметь возможность очистить бланк заказа для офформления другого клиента.
Можно ли формулой выделить нужные ячейки, которые потом единовременно можно очистить, не тыкая на каждую Delete(ом)?
С уважением, Алена
Excel является комплексным табличным процессором, перед которым пользователи ставят самые разнообразные задачи. Одной из таких задач является создание кнопки на листе, нажатие на которую запускало бы определенный процесс. Данная проблема вполне решаема с помощью инструментария Эксель. Давайте разберемся, какими способами можно создать подобный объект в этой программе.
Процедура создания
Как правило, подобная кнопка призвана выступать в качестве ссылки, инструмента для запуска процесса, макроса и т.п. Хотя в некоторых случаях, данный объект может являться просто геометрической фигурой, и кроме визуальных целей не нести никакой пользы. Данный вариант, впрочем, встречается довольно редко.
Способ 1: автофигура
Прежде всего, рассмотрим, как создать кнопку из набора встроенных фигур Excel.
- Производим перемещение во вкладку «Вставка». Щелкаем по значку «Фигуры», который размещен на ленте в блоке инструментов «Иллюстрации». Раскрывается список всевозможных фигур. Выбираем ту фигуру, которая, как вы считаете, подойдет более всего на роль кнопки. Например, такой фигурой может быть прямоугольник со сглаженными углами.
- После того, как произвели нажатие, перемещаем его в ту область листа (ячейку), где желаем, чтобы находилась кнопка, и двигаем границы вглубь, чтобы объект принял нужный нам размер.
- Теперь следует добавить конкретное действие. Пусть это будет переход на другой лист при нажатии на кнопку. Для этого кликаем по ней правой кнопкой мыши. В контекстном меню, которое активируется вслед за этим, выбираем позицию «Гиперссылка».
- В открывшемся окне создания гиперссылки переходим во вкладку «Местом в документе». Выбираем тот лист, который считаем нужным, и жмем на кнопку «OK».
Теперь при клике по созданному нами объекту будет осуществляться перемещение на выбранный лист документа.
Урок: Как сделать или удалить гиперссылки в Excel
Способ 2: стороннее изображение
В качестве кнопки можно также использовать сторонний рисунок.
- Находим стороннее изображение, например, в интернете, и скачиваем его себе на компьютер.
- Открываем документ Excel, в котором желаем расположить объект. Переходим во вкладку «Вставка» и кликаем по значку «Рисунок», который расположен на ленте в блоке инструментов «Иллюстрации».
- Открывается окно выбора изображения. Переходим с помощью него в ту директорию жесткого диска, где расположен рисунок, который предназначен выполнять роль кнопки. Выделяем его наименование и жмем на кнопку «Вставить» внизу окна.
- После этого изображение добавляется на плоскость рабочего листа. Как и в предыдущем случае, его можно сжать, перетягивая границы. Перемещаем рисунок в ту область, где желаем, чтобы размещался объект.
- После этого к копке можно привязать гиперссылку, таким же образом, как это было показано в предыдущем способе, а можно добавить макрос. В последнем случае кликаем правой кнопкой мыши по рисунку. В появившемся контекстном меню выбираем пункт «Назначить макрос…».
- Открывается окно управление макросами. В нем нужно выделить тот макрос, который вы желаете применять при нажатии кнопки. Этот макрос должен быть уже записан в книге. Следует выделить его наименование и нажать на кнопку «OK».
Теперь при нажатии на объект будет запускаться выбранный макрос.
Урок: Как создать макрос в Excel
Способ 3: элемент ActiveX
Наиболее функциональной кнопку получится создать в том случае, если за её первооснову брать элемент ActiveX. Посмотрим, как это делается на практике.
- Для того чтобы иметь возможность работать с элементами ActiveX, прежде всего, нужно активировать вкладку разработчика. Дело в том, что по умолчанию она отключена. Поэтому, если вы её до сих пор ещё не включили, то переходите во вкладку «Файл», а затем перемещайтесь в раздел «Параметры».
- В активировавшемся окне параметров перемещаемся в раздел «Настройка ленты». В правой части окна устанавливаем галочку около пункта «Разработчик», если она отсутствует. Далее выполняем щелчок по кнопке «OK» в нижней части окна. Теперь вкладка разработчика будет активирована в вашей версии Excel.
- После этого перемещаемся во вкладку «Разработчик». Щелкаем по кнопке «Вставить», расположенной на ленте в блоке инструментов «Элементы управления». В группе «Элементы ActiveX» кликаем по самому первому элементу, который имеет вид кнопки.
- После этого кликаем по любому месту на листе, которое считаем нужным. Сразу вслед за этим там отобразится элемент. Как и в предыдущих способах корректируем его местоположение и размеры.
- Кликаем по получившемуся элементу двойным щелчком левой кнопки мыши.
- Открывается окно редактора макросов. Сюда можно записать любой макрос, который вы хотите, чтобы исполнялся при нажатии на данный объект. Например, можно записать макрос преобразования текстового выражения в числовой формат, как на изображении ниже. После того, как макрос записан, жмем на кнопку закрытия окна в его правом верхнем углу.
Теперь макрос будет привязан к объекту.
Способ 4: элементы управления формы
Следующий способ очень похож по технологии выполнения на предыдущий вариант. Он представляет собой добавление кнопки через элемент управления формы. Для использования этого метода также требуется включение режима разработчика.
- Переходим во вкладку «Разработчик» и кликаем по знакомой нам кнопке «Вставить», размещенной на ленте в группе «Элементы управления». Открывается список. В нем нужно выбрать первый же элемент, который размещен в группе «Элементы управления формы». Данный объект визуально выглядит точно так же, как и аналогичный элемент ActiveX, о котором мы говорили чуть выше.
- Объект появляется на листе. Корректируем его размеры и место расположения, как уже не раз делали ранее.
- После этого назначаем для созданного объекта макрос, как это было показано в Способе 2 или присваиваем гиперссылку, как было описано в Способе 1.
Как видим, в Экселе создать функциональную кнопку не так сложно, как это может показаться неопытному пользователю. К тому же данную процедуру можно выполнить с помощью четырех различных способов на свое усмотрение.
Мы рады, что смогли помочь Вам в решении проблемы.
Задайте свой вопрос в комментариях, подробно расписав суть проблемы. Наши специалисты постараются ответить максимально быстро.
Помогла ли вам эта статья?
Столкнувшись снова, с тем что люди тратят много времени на очистку ячеек, поймал себя на мысли, что действий по очистке данных, ячеек, таблиц довольно много. Как очистить все данные на листе? Как удалить только форматы? Как убрать формулы? Или может быть вам нужно очистить данные по условию? Действительно, действий много. Наверное стоит подробно описать большинство способов. Как правильно и быстро очистить ячейки в Excel?
На самом деле, я бы разделил вопрос статьи на 3 части
- Как очистить форматы ячеек?
- Как очистить данные в ячейках Excel?
- Очистка/удаление прочих объектов, таких как диаграммы, автофигуры или сводные таблицы
Как быстро очистить ячейки в Excel от форматов?
Вам прислали файл сильно разукрашенный по цветам и его нужно очистить от форматов? Сделать это очень просто, выделяете нужный вам диапазон данных или весь лист сразу (нажав на уголок в левом верхнем углу таблиц).
Теперь ищите на ленте задач на вкладке Главная раздел Редактирование — в нем жмите кнопку Очистить
На выбор у вас будет несколько пунктов. Вы сможете
- Очистить все — т.е. удалить все данные на листе и форматы в том числе
- Очистить форматы — это как раз, то что нужно для примера
- Очистить содержимое — очищаем данные в ячейках, не трогая форматы
- Очистить примечания — удобная функция, если кто-то сильно зарецензировал ваш лист и оставил много примечаний. Появилась относительно недавно.
- Очистить гиперссылки — совсем новая возможность, появившаяся в 2016 версии. Позволяет очистить все ссылки на листе. Очень удобно если вы скопировали данные из интернета, например с Википедии, почти всегда копируется множество гиперссылок.
Если вы уже нажали пункт 2, то все ваши форматы очистились.
Но часто к форматам причисляют и условное форматирование. Мы знаем, что такое форматирование очень сильно грузит действия на листе, поэтому я не советую делать слишком много условий при помощи этой функции. Но если вы получили переформатированную книгу (как правило за счет копирования данных с условным форматированием много раз), то нужно знать как его удалить.
Опять выделяете нужную область или лист. Идете Главная — раздел Стили — Условное форматирование — Удалить правила и например Удалить правила со всего листа.
Все, условные форматирования тоже удалились!
Как очистить данные в ячейках Excel? Очистка данных по условиям
Как вы знаете удалить данные/информацию в ячейках Excel можно:
- нажатием кнопки Delete на клавиатуре, после выделения нужной области
- нажатием кнопки Удалить содержимое Главная — раздел Редактирование — в нем жмите кнопку Очистить содержимое (см. описание выше)
- можно удалить не только данные, но и сами ячейки. Выделив к примеру строку, кликнуть правой кнопкой мыши и нажав кнопку Удалить (она же Ctrl + кнопка минус)
Помимо этого можно удалить данные и по нужным условиям.
Самое простое решение — сперва отобрать данные для удаления автофильтром. После чего вы можете удалить в выбранных ячейках все что вам нужно — формат, данные или даже сами ячейки (Ctrl + кнопка минус)
Если вам необходимо убрать формулы в имеющихся вычислениях, то воспользуйтесь специальной вставкой и скопируйте только значения ячеек туда же.
Удаление объектов, очистка листов от диаграмм или прочих добавленных объектов
Чтобы удалить диаграмму, или автофигуры, нужно сперва ее выбрать, а затем удалить кнопкой Delete или через правую кнопку мыши — Удалить (см. выше). Но как быть, если вам необходимо удалить сразу несколько объектов — зажмите Ctrl и выберите нужные объекты. Если объектов очень много, то придется воспользоваться макросом, например, предложенном в пункте 4, этой статьи.
Так же объекты можно удалить если вы перейдете в меню Главная — раздел Редактирование — Найти и выделить — пункт Выделение группы ячеек — Объекты. Так можно очистить ячейки в Excel от объектов.
Напомню, что объекты могут значительно замедлять работу файла. Особенно если данные копировались из внешнего источника.
Если же вам необходим специальный макрос для удаления специфических объектов, то пишите в комментариях или мне на почту!
Поделитесь нашей статьей в ваших соцсетях:
(Visited 6 604 times, 52 visits today)
Табличный процессор Excel вмещает в себя огромное количество опций и функций, не исключая даже возможность создания кнопки. На первый взгляд абсолютно ненужный элемент некоторым пользователям может быть просто необходим. В этой статье будет рассказано, как сделать кнопку в Excel и привязать ее к ячейке.
Автофигура
Если перед вами не стоит задача создания оригинальной кнопки и вы не хотите заморачиваться над сложным ее оформлением то проще всего сделать ее, используя стандартный набор инструментов в программе. Такая кнопка будет служить своеобразной гиперссылкой для перехода на другие внутренние или внешние элементы. Ну, а теперь перейдем непосредственно к инструкции, как в Excel сделать кнопку:
- Откройте программу.
- Перейдите на вкладку «Вставка».
- В группе инструментов «Иллюстрации» отыщите кнопку «Фигуры» и нажмите по ней.
- Появится меню, в котором располагаются всевозможные геометрические фигуры. Вам необходимо выбрать ту, которая и будет служить кнопкой для перехода по гиперссылке. В данном случае мы будем использовать прямоугольник со скругленными углами. Кликаем по нему.
- На листе таблицы появится выбранный элемент. Изначально он вряд ли будет подходящей формы, поэтому переместите его в нужную область листа (в какую-нибудь ячейку) и измените размер, используя специальные маркеры на четырех сторонах прямоугольника.
После изменения размера и установки в ячейку нашей своеобразной кнопке можно задать действие, которое будет происходить после нажатия.
- Для этого нажмите правой кнопкой мыши (ПКМ) по прямоугольнику.
- Выберите пункт «Гиперссылка».
- В появившемся окне вам нужно выбрать один из четырех типов ссылки. Вы можете сделать ссылку на внешний файл или интернет-ресурс, выбрав пункт «файлом, веб-страницей»; можете сделать ссылку на место в документе, выбрав одноименный пункт; можно также сослаться на другой документ и на электронную почту. В последнем случае после нажатия по кнопке будет создано новое письмо на указанный адрес почты.
- Мы покажем пример создания со ссылкой на место в документе. Кликаем по одноименной кнопке.
- В соответствующем меню вы можете указать адрес ячейки или же определить другое место в документе.
- После выбора нажмите кнопку «ОК».
На этом создание кнопки первым способом закончено. Теперь после нажатия по ней вы будете переходить на другой лист в документе. Если же вы столкнулись с какими-либо трудностями или же этот метод просто вам не подошел, тогда перейдите ко второму способу, как в Excel сделать кнопку.
Собственное изображение
Если вы думаете, что создавать кнопку можно только из штатных элементов и из действий можно назначать лишь гиперссылку, то вы глубоко заблуждаетесь. Сейчас будет рассказано, как сделать кнопку в Excel для запуска макроса, при том кнопка будет не обычной, а в виде изображения, которое можно загрузить из интернета:
- В программе перейдите на вкладку «Вставка».
- Нажмите по кнопке «Рисунок», которая располагается в группе инструментов «Иллюстрации».
- Откроется окно файлового менеджера «Проводник». В нем необходимо перейти в папку с картинкой кнопки, выделить ее и нажать «Вставить».
- Выбранное изображение появится на листе программы. Измените его расположение и размер по своим предпочтениям.
- Нажмите по ПКМ и выберите действие «Назначить макрос».
- Появится окно с перечнем макросов. Вам остается лишь выбрать нужный и нажать кнопку «ОК».
После этого интерактивная кнопка будет создана, соответственно, на нее вы можете назначить и гиперссылку, как это было показано в первом способе.
Элемент ActiveX
Мы уже разобрали два способа, как сделать кнопку в Excel, перейдем к третьему, который кардинально отличается от предыдущих:
- Включите панель «Разработчика». Для этого в параметрах в разделе «Настройка ленты» поставьте галочку напротив пункта «Разработчик».
- Перейдите на только что добавленную вкладку «Разработчик».
- Нажмите по кнопке «Вставить» и выберите из выпадающего меню в разделе «Элементы ActiveX» первый пункт, который имеет вид кнопки.
- Кликните по любому месту на листе для вставки кнопки.
- При желании можете изменить месторасположение и размер элемента.
- Для добавления действия на кнопку кликните по ней дважды левой кнопкой мыши.
- Откроется окно с полем для ввода макроса. В него вы можете прописать любое необходимое действие.
- После ввода макроса закройте окно.
Теперь после нажатия на кнопку будет выполняться тот макрос, который вы указали. Теперь вы знаете все три способа, как сделать кнопку в Excel.
Заключение
Вот мы и рассмотрели три способа, как в Excel сделать активные кнопки. Как можно заметить, каждый из них в значительной мере отличается друг от друга, поэтому, ознакомившись с каждым из них, вы сможете подобрать для себя самый оптимальный.
Предположу, что почти каждый сталкивался с ситуацией, когда необходимо удалить только определенные строки: имеется большая таблица и необходимо удалить из неё только те строки, которые содержат какое-то слово (цифру, фразу). Для выполнения подобной задачи можно воспользоваться несколькими способами.
Способ первый:
Использовать встроенное средство Excel - фильтр. Сначала его необходимо "установить" на листе:
- Выделяем таблицу с данными, включая заголовки. Если их нет - то выделяем с самой первой строки таблицы, в которой необходимо удалить данные
- устанавливаем фильтр:
- для Excel 2003 : Данные-Фильтр-Автофильтр
- для Excel 2007-2010 : вкладка Данные (Data) -Фильтр (Filter)(или вкладка Главная (Home) -Сортировка и фильтр (Sort&Filter) -Фильтр (Filter) )
Теперь выбираем условие для фильтра:
- в Excel 2003 надо выбрать Условие и в появившейся форме выбрать непосредственно условие("равно", "содержит", "начинается с" и т.д.), а напротив значение в соответствии с условием.
- Для 2007-2010 Excel нужно выбрать Текстовые фильтры (Text Filters) и либо сразу выбрать одно из предлагаемых условий, либо нажать Настраиваемый фильтр (Custom Filter) и ввести значения для отбора в форме
После этого удалить отфильтрованные строки. В 2007 Excel могут возникнуть проблемы с удалением отфильтрованных строк, поэтому рекомендую сначала так же прочитать статью: Excel удаляет вместо отфильтрованных строк - все?! Как избежать.
Способ второй:
применить код VBA, который потребует только указания значения, которое необходимо найти в строке и номер столбца, в котором искать значение.Если значение sSubStr не будет указано, то будут удалены строки, ячейки указанного столбца которых, пустые.
Данный код необходимо поместить в стандартный модуль. Вызвать с листа его можно нажатием клавиш Alt + F8 , после чего выбрать Del_SubStr и нажать Выполнить. Если в данном коде в строке
If -(InStr(Cells(li, 1), sSubStr) > 0) = lMet Then
вместо = lMet указать <> lMet , то удаляться будут строки, не содержащие указанное для поиска значение. Иногда тоже удобно.
Но. Данный код просматривает строки на предмет частичного совпадения указанного значения. Например, если Вы укажете текст для поиска "отчет", то будут удалены все строки, в которых встречается это слово("квартальный отчет", "отчет за месяц" и т.д.). Это не всегда нужно. Поэтому ниже приведен код, который будет удалять только строки, указанные ячейки которых равны конкретно указанному значению:Здесь так же, как и в случае с предыдущим кодом можно заменить оператор сравнения( Cells(li, lCol) = sSubStr ) с равно на неравенство( Cells(li, lCol) <> sSubStr ) и тогда удаляться будут строки, значения ячеек которых не равно указанному.
УДАЛЕНИЕ СТРОК НА ОСНОВАНИИ СПИСКА ЗНАЧЕНИЙ(МНОЖЕСТВЕННЫЕ КРИТЕРИИ)
Иногда бывают ситуации, когда необходимо удалить строки не по одному значению, а по нескольким. Например, если строка содержит или Итог или Отчет. Ниже приведен код, при помощи которого можно удалить строки, указав в качестве критерия диапазон значений.
Значения, которые необходимо найти и удалить перечисляются на листе с именем "Лист2". Т.е. указав на "Лист2" в столбце А(начиная с первой строки) несколько значений - они все будут удалены. Если лист называется иначе(скажем "Соответствия") в коде необходимо будет "Лист2" заменить на "Соответствия". Удаление строк происходит на активном в момент запуска кода листе. Это значит, что перед запуском кода надо перейти на тот лист, строки в котором необходимо удалить.Sub Del_Array_SubStr() Dim sSubStr As String 'искомое слово или фраза Dim lCol As Long 'номер столбца с просматриваемыми значениями Dim lLastRow As Long, li As Long Dim avArr, lr As Long Dim arr lCol = Val(InputBox("Укажите номер столбца, в котором искать указанное значение", "www.excel-vba.ru", 1)) If lCol = 0 Then Exit Sub Application.ScreenUpdating = 0 lLastRow = ActiveSheet.UsedRange.Row - 1 + ActiveSheet.UsedRange.Rows.Count 'заносим в массив значения листа, в котором необходимо удалить строки arr = Cells(1, lCol).Resize(lLastRow).Value 'Получаем с Лист2 значения, которые надо удалить в активном листе With Sheets("Лист2") 'Имя листа с диапазоном значений на удаление avArr = .Range(.Cells(1, 1), .Cells(.Rows.Count, 1).End(xlUp)) End With 'удаляем Dim rr As Range For lr = 1 To UBound(avArr, 1) sSubStr = avArr(lr, 1) For li = 1 To lLastRow 'цикл с первой строки до конца If CStr(arr(li, 1)) = sSubStr Then If rr Is Nothing Then Set rr = Cells(li, 1) Else Set rr = Union(rr, Cells(li, 1)) End If End If DoEvents Next li DoEvents Next lr If Not rr Is Nothing Then rr.EntireRow.Delete Application.ScreenUpdating = 1 End Sub
Чтобы код выше удалял строки не по точному совпадению слов, а по частичному(например, в ячейке записано "Привет, как дела?", а в списке есть слово "привет" - надо удалить, т.к. есть слово "привет"), то надо строку:
If CStr(arr(li, 1)) = sSubStr Then
заменить на такую:
If InStr(1, arr(li, 1), sSubStr, 1) > 0 Then
УДАЛЕНИЕ ИЗ ЛИСТА СТРОК, КОТОРЫХ НЕТ В СПИСКЕ ЗНАЧЕНИЙ(МНОЖЕСТВЕННЫЕ КРИТЕРИИ)
Т.к. в последнее время стало поступать все больше и больше вопросов как не удалять значения по списку, а наоборот - оставить в таблице только те значения, которые перечислены в списке - решил дополнить статью и таким кодом.
Значения, которые необходимо оставить перечисляются на листе с именем "Лист2". Т.е. указав на "Лист2" в столбце А(начиная с первой строки) несколько значений - после работы кода на листе будут оставлены только те строки, в которых присутствует хоть одно из перечисленных в списке значений. Если лист называется иначе(скажем "Соответствия") в коде необходимо будет "Лист2" заменить на "Соответствия". Удаление строк происходит на активном в момент запуска кода листе. Это значит, что перед запуском кода надо перейти на тот лист, строки в котором необходимо удалить.
В отличие от приведенных выше кодов, данный код ориентирован на то, что значения в списке указаны не полностью. Т.е. если необходимо оставить только те ячейки, в которых встречается слово "активы", то в списке надо указать только это слово. В этом случае если в ячейке будет записана фраза "Нематериальные активы" или "Активы сторонние" - эти ячейки не будут удалены, т.к. в них встречается слово "активы". Регистр букв при этом неважен.'процедура оставляет в листе только те значения, которые перечислены в списке Sub LeaveOnlyFoundInArray() Dim sSubStr As String 'искомое слово или фраза Dim lCol As Long 'номер столбца с просматриваемыми значениями Dim lLastRow As Long, li As Long Dim avArr, lr As Long Dim arr Dim IsFind As Boolean lCol = Val(InputBox("Укажите номер столбца, в котором искать указанное значение", "www.excel-vba.ru", 1)) If lCol = 0 Then Exit Sub Application.ScreenUpdating = 0 lLastRow = ActiveSheet.UsedRange.Row - 1 + ActiveSheet.UsedRange.Rows.Count 'заносим в массив значения листа, в котором необходимо удалить строки arr = Cells(1, lCol).Resize(lLastRow).Value 'Получаем с Лист2 значения, которые надо удалить в активном листе With Sheets("Лист2") 'Имя листа с диапазоном значений на удаление avArr = .Range(.Cells(1, 1), .Cells(.Rows.Count, 1).End(xlUp)) End With 'удаляем Dim rr As Range For li = 1 To lLastRow 'цикл с первой строки таблицы до конца IsFind = False For lr = 1 To UBound(avArr, 1) 'цикл по списку значений на удаление sSubStr = avArr(lr, 1) If InStr(1, arr(li, 1), sSubStr, 1) > 0 Then IsFind = True End If DoEvents Next lr 'если значение таблицы не найдено в списке - удаляем строку If Not IsFind Then If rr Is Nothing Then Set rr = Cells(li, 1) Else Set rr = Union(rr, Cells(li, 1)) End If End If DoEvents Next li If Not rr Is Nothing Then rr.EntireRow.Delete Application.ScreenUpdating = 1 End Sub
Чтобы код выше сравнивал значения таблицы со значениями списка по точному совпадению слов, а не по частичному, то надо строку:
Читайте также: