Автоматическая очистка ячеек в excel

 

eska

Пользователь

Сообщений: 231
Регистрация: 11.01.2014

Добрый день, уважаемые участники форума!. Помогите пожалуйста с вопросом. Есть книга эксель с 30 листами, на которых в таблицах находятся данные по предприятиям. Как можно сделать макрос, который при нажатии кнопки очищал определенные данные на всех листах кроме Сводного. В примере ячейки, которые необходимо очищать закрашены в темный цвет.
Большое спасибо!!!

 

Сергей

Пользователь

Сообщений: 11251
Регистрация: 01.01.1970

Если таблицы абсолютно одинаковые и на листах расположены одинаково то через Ctrl выделяете листы на которых нужно очистить, на активном листе выделяете диапазон и Delete

Лень двигатель прогресса, доказано!!!

 

eska

Пользователь

Сообщений: 231
Регистрация: 11.01.2014

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

 

Сергей

Пользователь

Сообщений: 11251
Регистрация: 01.01.1970

я конечно не рунописец но как вы макросу объясните что надо почистить на первом листе диапазон от сель до сель у первой таблички а на втором листе нужно почистить диапазон не у первой а у третьей которая смещена на 10 столбцов в право

Лень двигатель прогресса, доказано!!!

 

eska

Пользователь

Сообщений: 231
Регистрация: 11.01.2014

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

 

Kuzmich

Пользователь

Сообщений: 7998
Регистрация: 21.12.2012

#6

02.04.2015 15:55:57

Цитата
Понятно, значит это нельзя сделать

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

 

eska

Пользователь

Сообщений: 231
Регистрация: 11.01.2014

К сожалению реальный пример выложить не могу.

 

Kuzmich

Пользователь

Сообщений: 7998
Регистрация: 21.12.2012

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

 

Юрий М

Модератор

Сообщений: 60577
Регистрация: 14.09.2012

Контакты см. в профиле

#9

02.04.2015 16:15:20

Цитата
eska написал: реальный пример выложить не могу.

Создайте аналог.

 

eska

Пользователь

Сообщений: 231
Регистрация: 11.01.2014

Вот выкладываю реальный пример, только там не 30 листов, а 8. Ячейки, данные в которых необходимо очистить, закрашены.

 

Kuzmich

Пользователь

Сообщений: 7998
Регистрация: 21.12.2012

#11

02.04.2015 20:58:17

В стандартный модуль

Код
Sub ОчисткаДанных()
Dim Sht As Worksheet
  With Application
    .ScreenUpdating = False
    .DisplayAlerts = False
    .Calculation = xlCalculationManual
  End With
       'цикл по всем листам
For Each Sht In Worksheets
     With Sht
        Select Case Sht.Name
            Case "Таблица1"
                .Range("E5:F23").ClearContents
            Case "Таблица2"
                .Range("D6:G24").ClearContents
                .Range("L6:N24").ClearContents
            Case "Таблица3"
                .Range("C4:G22").ClearContents
            Case "Таблица4"
                .Range("E5:G23").ClearContents
                .Range("I5:L23").ClearContents
                
                '.............................
                
            Case "Таблица30"
                .Range("D4:I22").ClearContents
        End Select
     End With
Next
  With Application
    .ScreenUpdating = True
    .DisplayAlerts = True
    .Calculation = xlCalculationAutomatic
  End With
End Sub

Диапазоны остальных таблиц впишите аналогично

 

МВТ

Пользователь

Сообщений: 1198
Регистрация: 01.02.2015

Только учтите, если у Вас данные в таблице свод ссылаются на остальные листы, они тоже «обнулятся».

 

eska

Пользователь

Сообщений: 231
Регистрация: 11.01.2014

#13

03.04.2015 07:16:06

Kuzmich, Работает. Большое Вам спасибо!!! Очень помогли.

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

Применить кнопку, чтобы очистить конкретное содержимое ячейки с помощью кода VBA


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

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

1. Нажмите Вставить > Формы > Прямоугольники , чтобы выбрать форму прямоугольника, а затем перетащите мышь, чтобы нарисовать кнопку прямоугольника в любом месте листа, как вам нужно, см. снимок экрана:

кнопка doc очистить ячейки 1

2. Затем введите текст и отформатируйте кнопку формы, как вам нужно, см. Снимок экрана:

кнопка doc очистить ячейки 2

3. Затем вы должны вставить код VBA, удерживая ALT + F11 , чтобы открыть Microsoft Visual Basic для приложений окно. Нажмите Вставить > Модулии вставьте следующий код в Модули Окно.

Код VBA: очистить содержимое определенных ячеек:

Sub Clearcells()
'Updateby Extendoffice
Range("A2", "A5").Clear
Range("C10", "D18").Clear
Range("B8", "B12").Clear
End Sub

Внимание: В приведенном выше коде: A2, A5 указать, что он очистит ячейки в диапазоне A2: A5, а не только две ячейки по отдельности, вы можете добавить несколько диапазонов, например Диапазон («B8», «B12»). Очистить сценарий внутри кода, чтобы очистить.

4. Затем сохраните и закройте окно кода, а затем свяжите код с кнопкой формы, щелкните кнопку правой кнопкой мыши и выберите Назначить макрос, В Назначить макрос диалогового окна, выберите Клирселлс кодовое имя из Имя макроса список и щелкните OK кнопку, чтобы выйти из этого диалогового окна. Смотрите скриншот:

кнопка doc очистить ячейки 3

5. А теперь, когда вы нажимаете Очистить все Кнопка, определенные вами ячейки очищаются сразу, см. снимок экрана:

кнопка doc очистить ячейки 4


Лучшие инструменты для работы в офисе

Kutools for Excel Решит большинство ваших проблем и повысит вашу производительность на 80%

  • Снова использовать: Быстро вставить сложные формулы, диаграммы и все, что вы использовали раньше; Зашифровать ячейки с паролем; Создать список рассылки и отправлять электронные письма …
  • Бар Супер Формулы (легко редактировать несколько строк текста и формул); Макет для чтения (легко читать и редактировать большое количество ячеек); Вставить в отфильтрованный диапазон
  • Объединить ячейки / строки / столбцы без потери данных; Разделить содержимое ячеек; Объединить повторяющиеся строки / столбцы… Предотвращение дублирования ячеек; Сравнить диапазоны
  • Выберите Дубликат или Уникальный Ряды; Выбрать пустые строки (все ячейки пустые); Супер находка и нечеткая находка во многих рабочих тетрадях; Случайный выбор …
  • Точная копия Несколько ячеек без изменения ссылки на формулу; Автоматическое создание ссылок на несколько листов; Вставить пули, Флажки и многое другое …
  • Извлечь текст, Добавить текст, Удалить по позиции, Удалить пробел; Создание и печать промежуточных итогов по страницам; Преобразование содержимого ячеек в комментарии
  • Суперфильтр (сохранять и применять схемы фильтров к другим листам); Расширенная сортировка по месяцам / неделям / дням, периодичности и др .; Специальный фильтр жирным, курсивом …
  • Комбинируйте книги и рабочие листы; Объединить таблицы на основе ключевых столбцов; Разделить данные на несколько листов; Пакетное преобразование xls, xlsx и PDF
  • Более 300 мощных функций. Поддерживает Office/Excel 2007-2021 и 365. Поддерживает все языки. Простое развертывание на вашем предприятии или в организации. Полнофункциональная 30-дневная бесплатная пробная версия. 60-дневная гарантия возврата денег.

вкладка kte 201905


Вкладка Office: интерфейс с вкладками в Office и упрощение работы

  • Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
  • Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
  • Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!

офисный дно

Комментарии (63)


Оценок пока нет. Оцените первым!

Автоматическая чиста таблицы с выбором от минуты до максимум

goshaMur89

Дата: Среда, 07.12.2016, 22:25 |
Сообщение № 1

Группа: Пользователи

Ранг: Прохожий

Сообщений: 9


Репутация:

0

±

Замечаний:
0% ±


Excel 2010

ВОПРОС.1 (Очень важный ) Помогите реализовать автоматическую очистку книги excel, с выбором времени (например от одной мин. до максимума). Суть задачи такова, имеется файлы (прикрепил ниже), например, в таблице есть данные которые раз в сутки будут очищаться, для того, что бы новая смена не путалась и не тратила время на создание новой таблицы. В файле, что я прикрепил, в ячейках где стоят красные единицы должны стираться. А все остальные должны быть неизменны.

ВОПРОС.2 (Также очень важный) Две книги exel, например, в «подразделении 1» и «подразделении 2», имеются одинаковые таблицы, они будут перетаскиваться в третью общую таблицу. Можно перетаскивать в реальном времени, то есть в книги 1 и 2, работник начинает заполнять таблицу она автоматически заполняется переходит в общую. Либо сделать также раз в определенное время делать копирование в общую книгу.

Вот такие вот делишки)))) Возможно ли это все реализовать? В Exel я можно сказать 0,1% :D и поэтому сам, без вашей помощи этого не реализую. Недавно узнал, что оказывается можно в exel программировать (создавать макросы). И поэтому большая просьба, если не сложно, то еще рядом с кодом описать, какую функцию он выполняет, т.к я потом еще изучаю код. Заранее спасибо, с меня beer beer beer beer beer

 

Ответить

goshaMur89

Дата: Среда, 07.12.2016, 22:26 |
Сообщение № 2

Группа: Пользователи

Ранг: Прохожий

Сообщений: 9


Репутация:

0

±

Замечаний:
0% ±


Excel 2010

Забыл залить, вот файлы

К сообщению приложен файл:

8138054.rar
(17.8 Kb)

 

Ответить

Pelena

Дата: Среда, 07.12.2016, 22:27 |
Сообщение № 3

Группа: Админы

Ранг: Местный житель

Сообщений: 18797


Репутация:

4284

±

Замечаний:
±


Excel 2016 & Mac Excel

Читаем Правила форума: один вопрос — одна тема


«Черт возьми, Холмс! Но как??!!»
Ю-money 41001765434816

 

Ответить

goshaMur89

Дата: Среда, 07.12.2016, 22:32 |
Сообщение № 4

Группа: Пользователи

Ранг: Прохожий

Сообщений: 9


Репутация:

0

±

Замечаний:
0% ±


Excel 2010

аааа))) сори

 

Ответить

K-SerJC

Дата: Четверг, 08.12.2016, 09:58 |
Сообщение № 5

Группа: Проверенные

Ранг: Обитатель

Сообщений: 487


Репутация:

86

±

Замечаний:
0% ±


Excel 2013

вопрос первый так устроит?


Благими намерениями выстелена дорога в АД.

 

Ответить

goshaMur89

Дата: Четверг, 08.12.2016, 10:48 |
Сообщение № 6

Группа: Пользователи

Ранг: Прохожий

Сообщений: 9


Репутация:

0

±

Замечаний:
0% ±


Excel 2010

Подскажите пожалуйста, как менять время очистки? А так интерфейс СУПЕР. МНЕ НРАВИТСЯ

 

Ответить

goshaMur89

Дата: Четверг, 08.12.2016, 11:34 |
Сообщение № 7

Группа: Пользователи

Ранг: Прохожий

Сообщений: 9


Репутация:

0

±

Замечаний:
0% ±


Excel 2010

Возможно я немного неправильно понимаю, очистка происходит при открывании файла или если файл будет не закрыт (а такое будет), очистка будет происходит? И не получается выбрать минуты? А мои корявые руки полезли в код и все попортили, пришлось заново закачивать)))

 

Ответить

K-SerJC

Дата: Пятница, 09.12.2016, 16:29 |
Сообщение № 8

Группа: Проверенные

Ранг: Обитатель

Сообщений: 487


Репутация:

86

±

Замечаний:
0% ±


Excel 2013

Подскажите пожалуйста, как менять время очистки?

время очистки выставляете в ячейках H1-дней,H2-месяцев,H3-лет J1-минут,J2-часов

макрос запускается при открытии файла проверяет текущую дату-время и дату-время последней очистки плюс выставленый в ячейках интервал.

чтобы автоматически работал на открытом файле, надо прописывать запуск этой процедуры по таймеру… дополнить код надо, в понедельник подумаю как это сотворить…


Благими намерениями выстелена дорога в АД.

 

Ответить

goshaMur89

Дата: Пятница, 09.12.2016, 18:04 |
Сообщение № 9

Группа: Пользователи

Ранг: Прохожий

Сообщений: 9


Репутация:

0

±

Замечаний:
0% ±


Excel 2010

Ок, понял. Буду очень благодарен! Спасибо K-SerJC

 

Ответить

K-SerJC

Дата: Понедельник, 12.12.2016, 09:07 |
Сообщение № 10

Группа: Проверенные

Ранг: Обитатель

Сообщений: 487


Репутация:

86

±

Замечаний:
0% ±


Excel 2013

Ок, понял. Буду очень благодарен!

как-то так должно работать
таймер каждую минуту обновляет текущее время, проверяет не превысило ли установленное, если превысило очищает ячейки.

К сообщению приложен файл:

9527842.xlsm
(21.0 Kb)


Благими намерениями выстелена дорога в АД.

Сообщение отредактировал K-SerJCПонедельник, 12.12.2016, 09:12

 

Ответить

goshaMur89

Дата: Понедельник, 12.12.2016, 21:20 |
Сообщение № 11

Группа: Пользователи

Ранг: Прохожий

Сообщений: 9


Репутация:

0

±

Замечаний:
0% ±


Excel 2010

Спасибо огромное, выручили! Вы гений! Репутацию повышаю))))

 

Ответить

K-SerJC

Дата: Четверг, 15.12.2016, 11:33 |
Сообщение № 12

Группа: Проверенные

Ранг: Обитатель

Сообщений: 487


Репутация:

86

±

Замечаний:
0% ±


Excel 2013

ВОПРОС.2 (Также очень важный)

если оформите по правилам, тоже найдется решение ;-)


Благими намерениями выстелена дорога в АД.

 

Ответить

Содержание

  1. Excel works!
  2. Excel works!
  3. Как правильно и быстро очистить ячейки в Excel?
  4. Как быстро очистить ячейки в Excel от форматов?
  5. Как очистить данные в ячейках Excel? Очистка данных по условиям
  6. Удаление объектов, очистка листов от диаграмм или прочих добавленных объектов
  7. Как удалить строки по условию?

Excel works!

Excel работает за вас

Excel works!

Thanks for Visiting

Как правильно и быстро очистить ячейки в Excel?

Столкнувшись снова с тем, что люди тратят много времени на очистку ячеек, поймал себя на мысли, что действий по очистке данных, ячеек, таблиц довольно много. Как очистить все данные на листе? Как удалить только форматы? Как убрать формулы? Или может быть вам нужно очистить данные по условию? Действительно, возможностей много. Думаю, стоит подробно описать большинство способов. Как правильно и быстро очистить ячейки в Excel?

На самом деле, я бы разделил вопрос статьи на 3 части

  1. Как очистить форматы ячеек?
  2. Как очистить данные в ячейках Excel?
  3. Очистка/удаление прочих объектов, таких как диаграммы, автофигуры или сводные таблицы

Как быстро очистить ячейки в Excel от форматов?

Вам прислали файл сильно разукрашенный по цветам и его нужно очистить от форматов? Сделать это очень просто: выделяете нужный вам диапазон данных или весь лист сразу (нажав на уголок в левом верхнем углу таблиц).

Теперь ищите на ленте задач на вкладке Главная раздел Редактирование — в нем жмите кнопку Очистить

На выбор у вас будет несколько пунктов. Вы сможете

  1. Очистить все — т.е. удалить все данные на листе и форматы в том числе
  2. Очистить форматы — это как раз то, что нужно для примера
  3. Очистить содержимое — очищаем данные в ячейках, не трогая форматы
  4. Очистить примечания — удобная функция, если кто-то сильно зарецензировал ваш лист и оставил много примечаний. Появилась относительно недавно.
  5. Очистить гиперссылки — совсем новая возможность, появившаяся в 2016 версии. Позволяет очистить все ссылки на листе. Очень удобно, если вы скопировали данные из интернета, например, из Википедии, почти всегда копируется множество гиперссылок.

Если вы уже нажали пункт 2, то все ваши форматы очистились.

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

Опять выделяете нужную область или лист. Идете Главная — раздел Стили — Условное форматирование — Удалить правила и например Удалить правила со всего листа.

Все, условные форматирования тоже удалились!

Как очистить данные в ячейках Excel? Очистка данных по условиям

Как вы знаете, удалить данные/информацию в ячейках Excel можно:

  • нажатием кнопки Delete на клавиатуре, после выделения нужной области
  • нажатием кнопки Удалить содержимое Главная — раздел Редактирование — в нем жмите кнопку Очистить содержимое (см. описание выше)
  • можно удалить не только данные, но и сами ячейки. Выделив, к примеру, строку, кликнуть правой кнопкой мыши и нажав кнопку Удалить (она же Ctrl + кнопка минус )

Помимо этого можно удалить данные и по нужным условиям.

Самое простое решение — сперва отобрать данные для удаления автофильтром . После чего вы можете удалить в выбранных ячейках все, что вам нужно — формат, данные или даже сами ячейки ( Ctrl + кнопка минус )

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

Удаление объектов, очистка листов от диаграмм или прочих добавленных объектов

Чтобы удалить диаграмму, или автофигуры, нужно сперва ее выбрать, а затем удалить кнопкой Delete или через правую кнопку мыши — Удалить (см. выше). Но как быть, если вам необходимо удалить сразу несколько объектов — зажмите Ctrl и выберите нужные объекты. Если объектов очень много, то придется воспользоваться макросом, например, предложенном в пункте 4, этой статьи .

Так же объекты можно удалить, если вы перейдете в меню Главная — раздел Редактирование — Найти и выделить — пункт Выделение группы ячеек — Объекты. Так можно очистить ячейки в 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, который потребует только указания значения, которое необходимо найти в строке и номер столбца, в котором искать значение.

Sub Del_SubStr() Dim sSubStr As String ‘искомое слово или фраза(может быть указанием на ячейку) Dim lCol As Long ‘номер столбца с просматриваемыми значениями Dim lLastRow As Long, li As Long Dim lMet As Long Dim arr sSubStr = InputBox(«Укажите значение, которое необходимо найти в строке», «www.excel-vba.ru», «») If sSubStr = «» Then lMet = 0 Else lMet = 1 lCol = Val(InputBox(«Укажите номер столбца, в котором искать указанное значение», «www.excel-vba.ru», 1)) If lCol = 0 Then Exit Sub lLastRow = ActiveSheet.UsedRange.Row — 1 + ActiveSheet.UsedRange.Rows.Count arr = Cells(1, lCol).Resize(lLastRow).Value Application.ScreenUpdating = 0 Dim rr As Range For li = 1 To lLastRow ‘цикл с первой строки до конца If -(InStr(arr(li, 1), sSubStr) > 0) = lMet Then If rr Is Nothing Then Set rr = Cells(li, 1) Else Set rr = Union(rr, Cells(li, 1)) End If End If Next li If Not rr Is Nothing Then rr.EntireRow.Delete Application.ScreenUpdating = 1 End Sub

Если значение sSubStr не будет указано, то будут удалены строки, ячейки указанного столбца которых, пустые.
Данный код необходимо поместить в стандартный модуль. Вызвать с листа его можно нажатием клавиш Alt + F8 , после чего выбрать Del_SubStr и нажать Выполнить. Если в данном коде в строке
If -(InStr(Cells(li, 1), sSubStr) > 0) = lMet Then
вместо = lMet указать <> lMet , то удаляться будут строки, не содержащие указанное для поиска значение. Иногда тоже удобно.
Но. Данный код просматривает строки на предмет частичного совпадения указанного значения. Например, если Вы укажете текст для поиска «отчет», то будут удалены все строки, в которых встречается это слово(«квартальный отчет», «отчет за месяц» и т.д.). Это не всегда нужно. Поэтому ниже приведен код, который будет удалять только строки, указанные ячейки которых равны конкретно указанному значению:

Sub Del_SubStr() Dim sSubStr As String ‘искомое слово или фраза(может быть указанием на ячейку) Dim lCol As Long ‘номер столбца с просматриваемыми значениями Dim lLastRow As Long, li As Long Dim arr sSubStr = InputBox(«Укажите значение, которое необходимо найти в строке», «www.excel-vba.ru», «») lCol = Val(InputBox(«Укажите номер столбца, в котором искать указанное значение», «www.excel-vba.ru», 1)) If lCol = 0 Then Exit Sub lLastRow = ActiveSheet.UsedRange.Row — 1 + ActiveSheet.UsedRange.Rows.Count arr = Cells(1, lCol).Resize(lLastRow).Value Application.ScreenUpdating = 0 Dim rr As Range 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 Next li If Not rr Is Nothing Then rr.EntireRow.Delete Application.ScreenUpdating = 1 End Sub

Здесь так же, как и в случае с предыдущим кодом можно заменить оператор сравнения( 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

‘процедура оставляет в листе только те значения, которые перечислены в списке 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

Чтобы код выше сравнивал значения таблицы со значениями списка по точному совпадению слов, а не по частичному, то надо строку:

If InStr(1, arr(li, 1), sSubStr, 1) > 0 Then

заменить на такую:

If CStr(arr(li, 1)) = sSubStr Then

Для всех приведенных кодов можно строки не удалять, а скрывать. Для этого надо строку:

If Not rr Is Nothing Then rr.EntireRow.Delete

заменить на такую:

If Not rr Is Nothing Then rr.EntireRow.Hidden = True

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

For li = 1 To lLastRow ‘цикл с первой строки до конца

1 — это первая строка; lLastRow — определяется автоматически кодом и равна номеру последней заполненной строки на листе. Если надо начать удалять строки только с 7-ой строки(например, в первых 6-ти шапка), то код будет выглядеть так:

For li = 7 To lLastRow ‘цикл с седьмой строки до конца

А если надо удалять только с 3-ей по 300-ю, то код будет выглядеть так:

For li = 3 To 300 ‘цикл с третьей строки до трехсотой

Статья помогла? Поделись ссылкой с друзьями!

Источник

Содержание

  • 1 Процедура создания
    • 1.1 Способ 1: автофигура
    • 1.2 Способ 2: стороннее изображение
    • 1.3 Способ 3: элемент ActiveX
    • 1.4 Способ 4: элементы управления формы
    • 1.5 Помогла ли вам эта статья?
      • 1.5.1 Как быстро очистить ячейки в Excel от форматов?
      • 1.5.2 Как очистить данные в ячейках Excel? Очистка данных по условиям
      • 1.5.3 Удаление объектов, очистка листов от диаграмм или прочих добавленных объектов
  • 2 Автофигура
  • 3 Собственное изображение
  • 4 Элемент ActiveX
  • 5 Заключение

Здравствуйте!

Вот опять назрел насущный вопрос:

Как создать такую волшебную КНОПКУ, нажав на которую можно очистить нужные ячейки в моей таблице, которые находятся в разных строка и разных столбцах, можно сказать разбросаны по всей таблице?

Объясню на примере:

Есть бланк заказа, с множеством ячеек: ФИО, тел., марка машины, прайс по услугам и т.д….много необходимой информации о клиенте.
После ввода данных и расчета стоимости по одному клиенту, хочу иметь возможность очистить бланк заказа для офформления другого клиента.
Можно ли формулой выделить нужные ячейки, которые потом единовременно можно очистить, не тыкая на каждую Delete(ом)?

С уважением, Алена

как сделать кнопку очистить в excel

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

Процедура создания

Как правило, подобная кнопка призвана выступать в качестве ссылки, инструмента для запуска процесса, макроса и т.п. Хотя в некоторых случаях, данный объект может являться просто геометрической фигурой, и кроме визуальных целей не нести никакой пользы. Данный вариант, впрочем, встречается довольно редко.

Способ 1: автофигура

Прежде всего, рассмотрим, как создать кнопку из набора встроенных фигур Excel.

  1. Производим перемещение во вкладку «Вставка». Щелкаем по значку «Фигуры», который размещен на ленте в блоке инструментов «Иллюстрации». Раскрывается список всевозможных фигур. Выбираем ту фигуру, которая, как вы считаете, подойдет более всего на роль кнопки. Например, такой фигурой может быть прямоугольник со сглаженными углами.
  2. После того, как произвели нажатие, перемещаем его в ту область листа (ячейку), где желаем, чтобы находилась кнопка, и двигаем границы вглубь, чтобы объект принял нужный нам размер.
  3. Теперь следует добавить конкретное действие. Пусть это будет переход на другой лист при нажатии на кнопку. Для этого кликаем по ней правой кнопкой мыши. В контекстном меню, которое активируется вслед за этим, выбираем позицию «Гиперссылка».
  4. В открывшемся окне создания гиперссылки переходим во вкладку «Местом в документе». Выбираем тот лист, который считаем нужным, и жмем на кнопку «OK».

как сделать кнопку очистить в excel

Теперь при клике по созданному нами объекту будет осуществляться перемещение на выбранный лист документа.

как сделать кнопку очистить в excel

Урок: Как сделать или удалить гиперссылки в Excel

Способ 2: стороннее изображение

В качестве кнопки можно также использовать сторонний рисунок.

  1. Находим стороннее изображение, например, в интернете, и скачиваем его себе на компьютер.
  2. Открываем документ Excel, в котором желаем расположить объект. Переходим во вкладку «Вставка» и кликаем по значку «Рисунок», который расположен на ленте в блоке инструментов «Иллюстрации».
  3. Открывается окно выбора изображения. Переходим с помощью него в ту директорию жесткого диска, где расположен рисунок, который предназначен выполнять роль кнопки. Выделяем его наименование и жмем на кнопку «Вставить» внизу окна.
  4. После этого изображение добавляется на плоскость рабочего листа. Как и в предыдущем случае, его можно сжать, перетягивая границы. Перемещаем рисунок в ту область, где желаем, чтобы размещался объект.
  5. После этого к копке можно привязать гиперссылку, таким же образом, как это было показано в предыдущем способе, а можно добавить макрос. В последнем случае кликаем правой кнопкой мыши по рисунку. В появившемся контекстном меню выбираем пункт «Назначить макрос…».
  6. Открывается окно управление макросами. В нем нужно выделить тот макрос, который вы желаете применять при нажатии кнопки. Этот макрос должен быть уже записан в книге. Следует выделить его наименование и нажать на кнопку «OK».

как сделать кнопку очистить в excel

Теперь при нажатии на объект будет запускаться выбранный макрос.

как сделать кнопку очистить в excel

Урок: Как создать макрос в Excel

Способ 3: элемент ActiveX

Наиболее функциональной кнопку получится создать в том случае, если за её первооснову брать элемент ActiveX. Посмотрим, как это делается на практике.

  1. Для того чтобы иметь возможность работать с элементами ActiveX, прежде всего, нужно активировать вкладку разработчика. Дело в том, что по умолчанию она отключена. Поэтому, если вы её до сих пор ещё не включили, то переходите во вкладку «Файл», а затем перемещайтесь в раздел «Параметры».
  2. В активировавшемся окне параметров перемещаемся в раздел «Настройка ленты». В правой части окна устанавливаем галочку около пункта «Разработчик», если она отсутствует. Далее выполняем щелчок по кнопке «OK» в нижней части окна. Теперь вкладка разработчика будет активирована в вашей версии Excel.
  3. После этого перемещаемся во вкладку «Разработчик». Щелкаем по кнопке «Вставить», расположенной на ленте в блоке инструментов «Элементы управления». В группе «Элементы ActiveX» кликаем по самому первому элементу, который имеет вид кнопки.
  4. После этого кликаем по любому месту на листе, которое считаем нужным. Сразу вслед за этим там отобразится элемент. Как и в предыдущих способах корректируем его местоположение и размеры.
  5. Кликаем по получившемуся элементу двойным щелчком левой кнопки мыши.
  6. Открывается окно редактора макросов. Сюда можно записать любой макрос, который вы хотите, чтобы исполнялся при нажатии на данный объект. Например, можно записать макрос преобразования текстового выражения в числовой формат, как на изображении ниже. После того, как макрос записан, жмем на кнопку закрытия окна в его правом верхнем углу.

как сделать кнопку очистить в excel

Теперь макрос будет привязан к объекту.

Способ 4: элементы управления формы

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

  1. Переходим во вкладку «Разработчик» и кликаем по знакомой нам кнопке «Вставить», размещенной на ленте в группе «Элементы управления». Открывается список. В нем нужно выбрать первый же элемент, который размещен в группе «Элементы управления формы». Данный объект визуально выглядит точно так же, как и аналогичный элемент ActiveX, о котором мы говорили чуть выше.
  2. Объект появляется на листе. Корректируем его размеры и место расположения, как уже не раз делали ранее.
  3. После этого назначаем для созданного объекта макрос, как это было показано в Способе 2 или присваиваем гиперссылку, как было описано в Способе 1.

как сделать кнопку очистить в excel

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

Мы рады, что смогли помочь Вам в решении проблемы.

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

Помогла ли вам эта статья?

Да Нет

Столкнувшись снова, с тем что люди тратят много времени на очистку ячеек, поймал себя на мысли, что действий по очистке данных, ячеек, таблиц довольно много. Как очистить все данные на листе? Как удалить только форматы? Как убрать формулы? Или может быть вам нужно очистить данные по условию? Действительно, действий много. Наверное стоит подробно описать большинство способов. Как правильно и быстро очистить ячейки в Excel?

На самом деле, я бы разделил вопрос статьи на 3 части

  1. Как очистить форматы ячеек?
  2. Как очистить данные в ячейках Excel?
  3. Очистка/удаление прочих объектов, таких как диаграммы, автофигуры или сводные таблицы

Как быстро очистить ячейки в Excel от форматов?

Вам прислали файл сильно разукрашенный по цветам и его нужно очистить от форматов? Сделать это очень просто, выделяете нужный вам диапазон данных или весь лист сразу (нажав на уголок в левом верхнем углу таблиц).

Теперь ищите на ленте задач на вкладке Главная раздел Редактирование — в нем жмите кнопку Очистить

На выбор у вас будет несколько пунктов. Вы сможете

  1. Очистить все — т.е. удалить все данные на листе и форматы в том числе
  2. Очистить форматы — это как раз, то что нужно для примера
  3. Очистить содержимое — очищаем данные в ячейках, не трогая форматы
  4. Очистить примечания — удобная функция, если кто-то сильно зарецензировал ваш лист и оставил много примечаний. Появилась относительно недавно.
  5. Очистить гиперссылки — совсем новая возможность, появившаяся в 2016 версии. Позволяет очистить все ссылки на листе. Очень удобно если вы скопировали данные из интернета, например с Википедии, почти всегда копируется множество гиперссылок.

Если вы уже нажали пункт 2, то все ваши форматы очистились.

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

Опять выделяете нужную область или лист. Идете Главная — раздел Стили — Условное форматирование — Удалить правила и например Удалить правила со всего листа.

Все, условные форматирования тоже удалились!

Как очистить данные в ячейках Excel? Очистка данных по условиям

Как вы знаете удалить данные/информацию в ячейках Excel можно:

  • нажатием кнопки Delete на клавиатуре, после выделения нужной области
  • нажатием кнопки Удалить содержимое Главная — раздел Редактирование — в нем жмите кнопку Очистить содержимое (см. описание выше)
  • можно удалить не только данные, но и сами ячейки. Выделив к примеру строку, кликнуть правой кнопкой мыши и нажав кнопку Удалить (она же Ctrl + кнопка минус)

Помимо этого можно удалить данные и по нужным условиям.

Самое простое решение — сперва отобрать данные для удаления автофильтром. После чего вы можете удалить в выбранных ячейках все что вам нужно — формат, данные или даже сами ячейки (Ctrl + кнопка минус)

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

Удаление объектов, очистка листов от диаграмм или прочих добавленных объектов

Чтобы удалить диаграмму, или автофигуры, нужно сперва ее выбрать, а затем удалить кнопкой Delete или через правую кнопку мыши — Удалить (см. выше). Но как быть, если вам необходимо удалить сразу несколько объектов — зажмите Ctrl  и выберите нужные объекты. Если объектов очень много, то придется воспользоваться макросом, например, предложенном в пункте 4, этой статьи.

Так же объекты можно удалить если вы перейдете в меню Главная — раздел Редактирование — Найти и выделить — пункт Выделение группы ячеек — Объекты. Так можно очистить ячейки в Excel от объектов.

Напомню, что объекты могут значительно замедлять работу файла. Особенно если данные копировались из внешнего источника.

Если же вам необходим специальный макрос для удаления специфических объектов, то пишите в комментариях или мне на почту!

Поделитесь нашей статьей в ваших соцсетях:

(Visited 6 604 times, 52 visits today)

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

Автофигура

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

  1. Откройте программу.
  2. Перейдите на вкладку «Вставка».
  3. В группе инструментов «Иллюстрации» отыщите кнопку «Фигуры» и нажмите по ней.
  4. Появится меню, в котором располагаются всевозможные геометрические фигуры. Вам необходимо выбрать ту, которая и будет служить кнопкой для перехода по гиперссылке. В данном случае мы будем использовать прямоугольник со скругленными углами. Кликаем по нему.
  5. На листе таблицы появится выбранный элемент. Изначально он вряд ли будет подходящей формы, поэтому переместите его в нужную область листа (в какую-нибудь ячейку) и измените размер, используя специальные маркеры на четырех сторонах прямоугольника.

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

  1. Для этого нажмите правой кнопкой мыши (ПКМ) по прямоугольнику.
  2. Выберите пункт «Гиперссылка».
  3. В появившемся окне вам нужно выбрать один из четырех типов ссылки. Вы можете сделать ссылку на внешний файл или интернет-ресурс, выбрав пункт «файлом, веб-страницей»; можете сделать ссылку на место в документе, выбрав одноименный пункт; можно также сослаться на другой документ и на электронную почту. В последнем случае после нажатия по кнопке будет создано новое письмо на указанный адрес почты.
  4. Мы покажем пример создания со ссылкой на место в документе. Кликаем по одноименной кнопке.
  5. В соответствующем меню вы можете указать адрес ячейки или же определить другое место в документе.
  6. После выбора нажмите кнопку «ОК».

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

Собственное изображение

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

  1. В программе перейдите на вкладку «Вставка».
  2. Нажмите по кнопке «Рисунок», которая располагается в группе инструментов «Иллюстрации».
  3. Откроется окно файлового менеджера «Проводник». В нем необходимо перейти в папку с картинкой кнопки, выделить ее и нажать «Вставить».
  4. Выбранное изображение появится на листе программы. Измените его расположение и размер по своим предпочтениям.
  5. Нажмите по ПКМ и выберите действие «Назначить макрос».
  6. Появится окно с перечнем макросов. Вам остается лишь выбрать нужный и нажать кнопку «ОК».

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

Элемент ActiveX

Мы уже разобрали два способа, как сделать кнопку в Excel, перейдем к третьему, который кардинально отличается от предыдущих:

  1. Включите панель «Разработчика». Для этого в параметрах в разделе «Настройка ленты» поставьте галочку напротив пункта «Разработчик».
  2. Перейдите на только что добавленную вкладку «Разработчик».
  3. Нажмите по кнопке «Вставить» и выберите из выпадающего меню в разделе «Элементы ActiveX» первый пункт, который имеет вид кнопки.
  4. Кликните по любому месту на листе для вставки кнопки.
  5. При желании можете изменить месторасположение и размер элемента.
  6. Для добавления действия на кнопку кликните по ней дважды левой кнопкой мыши.
  7. Откроется окно с полем для ввода макроса. В него вы можете прописать любое необходимое действие.
  8. После ввода макроса закройте окно.

Теперь после нажатия на кнопку будет выполняться тот макрос, который вы указали. Теперь вы знаете все три способа, как сделать кнопку в Excel.

Заключение

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

Понравилась статья? Поделить с друзьями:
  • Автоматическая окраска ячейки в excel
  • Автоматическая оглавление word 2007
  • Автоматическая обработка данных в excel это
  • Автоматическая обновления в excel
  • Автоматическая нумеровка строк в excel