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

Обновлено: 21.11.2024

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

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

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

Итак, приступим!

Очистить ячейки с помощью перехода к специальному

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

Ниже приведены действия по очистке содержимого этих ячеек без изменения формул:

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

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

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

Вышеуказанные действия мгновенно удалят все содержимое и форматирование из этих ячеек.

Очистить ячейки с помощью VBA

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

Если вас устраивает использование VBA, вы можете ускорить этот процесс с помощью простого кода VBA.

Ниже приведен код VBA, который очистит содержимое всех ячеек (в пределах выделения), сохранив формулы нетронутыми:

Если вы хотите сделать то же самое для всего листа (а не только для выделения), вы можете использовать следующий код:

Ниже приведены шаги по использованию этого кода VBA в Excel:

Вышеуказанные шаги мгновенно очистят содержимое всего выделения (за исключением формул).

Если вы хотите очистить содержимое всех листов (и сохранить формулы нетронутыми), вы можете использовать приведенный ниже код:

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

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

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

Перейти к именованному диапазону

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

Очистить ячейки в именованном диапазоне

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

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

  • Выберите все зеленые ячейки и назовите rangeDataEntry.
  • Нажмите стрелку справа от поля "Имя" и выберите "Ввод данных".

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

Добавить кнопку для очистки ячеек

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

Затем добавьте кнопку на лист

и назначьте макрос этой кнопке.

6 мыслей о «Быстрой очистке ячеек ввода данных в Excel»

Спасибо за объяснение создания макроса для очистки данных. Моя форма теперь идеальна!

Итак, каким должен быть код VBA для кнопки очистки ячеек.

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

извините, пожалуйста, помогите удалить все

У меня нет раскрывающегося списка "Разработчик". Почему это? Могу ли я настроить макрос очистки кнопки?

Для доступа к вкладке "Разработчик": выберите "Файл/Параметры/Настроить ленту", а затем выберите "Разработчик".

Оставить ответ Отменить ответ

Этот сайт использует Akismet для уменьшения количества спама. Узнайте, как обрабатываются данные ваших комментариев.

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

Шаг 1. Добавьте кнопку

  • В меню разработчика нажмите значок Вставить
  • .
  • Выберите значок кнопки в разделе Элементы управления формой
  • .
  • Перетащите кнопку на лист Excel.

  • Нажмите кнопку Создать.
  • Откроется Microsoft Visual Basic для приложений, как показано ниже. Код VB будет сохранен в модуле, который можно использовать на любом листе этой книги.

Шаг 2. Введите код VB

  • Использование команды ClearContents для очистки значения в указанных ячейках
  • Очистить одну ячейку: используйте полный код как Worksheets("Sheet1").Range("C3").ClearContents внутри процедуры Button1_Click(), показанной ниже. После нажатия кнопки значение в ячейке C3 (дата рождения Нэнси Тао) на листе 1 будет очищено или удалено.

  • Очистить диапазон ячеек: как Рабочие листы("Лист1").Range("A3:C300").ClearContents. Будет очищено или удалено значение из ячеек с A3 по C300 на Листе1.< /li>

Полный код под новой кнопкой «Очистить все»:

ПРИМЕЧАНИЕ.
После того, как вы нажмете кнопку для очистки содержимого, вы не сможете отменить процесс, или команда отмены больше не работает для возврата информации.

Шаг 3. Отредактируйте код VB

Вы можете отредактировать код VB под кнопкой, нажав правой кнопкой мыши на кнопку, код которой вы хотите отредактировать. Например: я хочу изменить код VB под кнопкой Очистить все

.

  • Откроется окно "Назначить макрос".
  • Выберите имя макроса в Clear_All
  • Нажмите кнопку Изменить
  • .

Откроется Microsoft Visual Basic для приложений, и фокус будет сделан на процедуре имени макроса Clear_All, которую вы хотите изменить в VB.

Подтвердить перед удалением

Как я упоминал ранее, вы не можете отменить процесс или не можете получить удаленную информацию после нажатия кнопки «Очистить», поэтому рекомендуется запрашивать подтверждение перед очисткой содержимого. См. пример ниже:

Пояснение:

В соответствии с приведенным выше кодом VB вы получите всплывающее окно с сообщением после нажатия кнопки «Очистить все». Он спрашивает вас: «Вы уверены, что хотите удалить всю информацию о клиенте?» кнопками ответа (Да или Нет).

Да: подтвердите удаление содержимого

Нет: отмените процесс или подтвердите, что не очищаете содержимое

Пример очистки одной ячейки и диапазона ячеек

Мы можем использовать запятую (,) между ячейками, группой ячеек или диапазоном ячеек внутри функции диапазона в строке: Worksheets("Sheet1").Range("B3, C3:C3100").ClearContents< /p>

Полный код:

Пример использования команды ClearContents более чем в одну строку

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

Полный код:

Sub Clear_All()
Тусклый ответ как целое число

Response = MsgBox("Вы действительно хотите удалить всю информацию о клиенте?", vbYesNo, "Удалить все?")
If Response = vbYes Then
Worksheets("Лист1").Range ("A3:C3").ClearContents
Рабочие листы("Лист1").Range("A4:C300").ClearContents
Рабочие листы("Лист1").Range("H1, H3:H15, K1: K50").ClearContents
иначе
'ничего не делать
End If
End Sub

Пример использования ClearContents в столбцах

Он очистит все содержащиеся или значения в указанных столбцах в коде. Индекс столбца 1 = столбец A. Вы можете использовать букву столбца в коде как .Colunn("D") = столбец D.

Очистить столбцы:

Sub Clear_All()
Тусклый ответ как целое число

Response = MsgBox("Вы уверены, что хотите удалить всю информацию о клиенте?", vbYesNo, "Удалить все?")

If Response = vbYes Then
С листами("Лист1")
.Columns(1).ClearContents 'Столбец A
.Columns(4).ClearContents 'Столбец C
>.Columns("D").ClearContents 'Столбец D
End With
Else
' ничего не делать
End If
End Sub

Дополнительная оценка этого руководства:

Установить фокус на кнопке ответа

В предыдущем примере подсказка кнопки ответа была установлена ​​на кнопку "Да", когда окно сообщения всплывает с использованием кода VB: vbYesNo

Response = MsgBox("Вы уверены, что хотите удалить всю информацию о клиенте?", vbYesNo, "Удалить все?")

В предыдущем примере подсказка кнопки ответа устанавливается на кнопку Да, когда всплывает окно сообщения. Если пользователи случайно нажмут Enter на клавиатуре после появления сообщения, информация сразу же очистится/удалит. Информация не может быть восстановлена ​​с помощью команды Undo, как упоминалось ранее. Мы можем установить фокус ответа на кнопку «Нет», добавив vbDefaultButton2 в vbYesNo, как показано в строке ниже.

Response = MsgBox("Вы уверены, что хотите удалить всю информацию о клиенте?", vbYesNo + vbDefaultButton2, "Удалить все?")

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

Если вы хотите выполнить очистку вручную, выполните следующие действия:

    Нажмите F5. Excel отображает диалоговое окно «Перейти к». (См. рис. 1.)

Рисунок 1. Диалоговое окно «Перейти к».

Рисунок 2. Диалоговое окно «Перейти к специальному».

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

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

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

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

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

Биография автора

На его счету более 50 научно-популярных книг и множество журнальных статей. Аллен Уайатт является всемирно признанным автором. Он является президентом Sharon Parq Associates, компании, предоставляющей компьютерные и издательские услуги. Узнайте больше об Аллене.

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