Excel очистить значение ячейки если

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

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

Очистить целые строки, если значение больше или меньше определенного значения с кодом VBA

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

Очистить целые строки, если другая ячейка пуста с кодом VBA

Очистить содержимое ячейки на основе цвета фона с помощью кода VBA


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

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

1. Удерживайте ALT + F11 , чтобы открыть Microsoft Visual Basic для приложений окно.

2. Нажмите Вставить > Модулии вставьте следующий код в окно модуля.

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

Sub ClearContents()
'Updateby ExtendOffice
 Dim xRng As Range
 Dim xCell As Range
 Dim xText As String
 Set xRng = Application.Range("A2:A12")
 xText = "Hoodie" 'Change this text to your own
 For Each xCell In xRng
 If xCell.Value = xText Then
 xCell.clearContents
 End If
 Next xCell
End Sub

Внимание: В приведенном выше коде A2: A12 это диапазон данных, из которого вы хотите очистить содержимое ячейки, текст «Толстовка с капюшоном” — это конкретное значение, которое вы хотите очистить. Пожалуйста, измените их на свои.

3, Затем нажмите F5 key для запуска этого кода, и все ячейки с текстом «Толстовка» сразу очищаются, см. скриншот:


Очистить целые строки, если значение больше или меньше определенного значения с кодом VBA

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

1. Удерживайте ALT + F11 , чтобы открыть Microsoft Visual Basic для приложений окно.

2. Нажмите Вставить > Модулии вставьте следующий код в окно модуля.

Код VBA: очистить целые строки, если значение ячейки больше или меньше определенного значения

Sub ClearRowInValue()
'Updateby ExtendOffice
Dim xRg As Range
Dim xStrAddress As String
Dim xStrValue As Integer
Dim xCell As Range
Dim xRowRg As Range
Dim xF As Integer
Dim xBol As Boolean
xStrAddress = "D2:D12" 'Change cell range
xStrValue = 300 'change the value
Set xRg = Range(xStrAddress)
For xF = xRg.Rows.Count To 1 Step -1
    Set xRowRg = xRg.Rows.Item(xF)
    xBol = False
    For Each xCell In xRowRg.Cells
        If Application.IsNumber(xCell.Value) Then
        If xCell.Value > xStrValue Then
        xBol = True
        Exit For
        End If
        End If
    Next
    If xBol Then
        xRowRg.EntireRow.clearContents
    End If
Next
End Sub

Внимание: В приведенном выше коде D2: D12 содержит ли диапазон данных конкретное значение, на основе которого вы хотите очистить строки; 300 конкретное значение; в > персонаж в сценарии Если xCell.Value > xStrValue Тогда означает больше чем, используйте меньше чем, измените его на < характер, как вам нужно.

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


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

Если у вас есть Kutools for Excel, С его Выбрать определенные ячейки функцию, вы можете выбрать ячейки или строки на основе определенного значения, а затем сразу удалить содержимое ячейки.

После установки Kutools for Excel, пожалуйста, сделайте так:

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

2. В открытом Выбрать определенные ячейки диалоговом окне выполните следующие операции:

  • Нажмите Ячейка or Весь ряд что вы хотите выбрать;
  • Укажите критерии под Конкретный тип раздел, как вам нужно. Здесь я хочу выбрать строки, значение которых в столбце D больше 300.

3. Затем нажмите Ok кнопка, и будут выбраны все строки со значением больше 300. Теперь вам просто нужно нажать клавишу Delete на клавиатуре, чтобы удалить содержимое ячейки, см. снимок экрана:

Tips: Есть много других критериев, которые вы можете использовать, пожалуйста, укажите свое собственное условие в диалоговом окне, как показано ниже:


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

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

Чтобы завершить эту задачу, примените следующий код VBA:

1. Удерживая нажатой ALT + F11 , чтобы открыть Microsoft Visual Basic для приложений окно.

2. Нажмите Вставить > Модули, а затем вставьте следующий код в Модули Окно.

Код VBA: очистить данные строк, если они содержат пустую ячейку

Sub ClearContents()
'Updateby ExtendOffice
Dim xcell As Range
Set xrng = Application.Range("A2:D12")
For Each xcell In xrng
If xcell.Value = "" Then
Intersect(xcell.EntireRow, xrng).ClearContents
End If
Next
End Sub

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

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


Очистить содержимое ячейки на основе цвета фона с помощью кода VBA

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

1. Удерживайте ALT + F11 , чтобы открыть Microsoft Visual Basic для приложений окно.

2. Нажмите Вставить > Модули, а затем вставьте следующий код в Модули Окно.

Код VBA: очистить содержимое ячейки на основе цвета фона

Sub Clearcontents()
'Updateby ExtendOffice
Dim xcell As Range
Dim xrng As Range
Set xrng = Application.Range("A2:D12")
    For Each xcell In xrng
        If xcell.Interior.Color = RGB(252, 228, 214) Then
            xcell.Clearcontents
        End If
    Next
End Sub

Внимание: В приведенном выше коде A2: D12 диапазон данных, который вы хотите использовать, RGB (252, 228, 214) — это конкретный цвет, на основе которого вы хотите очистить ячейки, вы можете извлечь режим RGB цвета фона, используя Рисовать программа на вашем компьютере.

3. А затем нажмите F5 для запуска этого кода, и содержимое ячейки с указанным цветом фона немедленно очищается. Смотрите скриншот:


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

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

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

вкладка kte 201905


Вкладка Office — предоставляет интерфейс с вкладками в Office и значительно упрощает вашу работу

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

офисный дно

 

anat

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

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

Здравствуйте!
Прошу помощи.

Дано: столбец А — текст, который набирается вручную. Столбец Б — данет.
Требуется: в случае, когда в столбце Б стоит «да», удалить текст именно в этой ячейке столбца А.
То есть, если Б1 = «да», весь текст в А1 удаляется.
Не макросом!!

Спасибо!

 

ber$erk

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

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

и как Вы себе это представляете?

Учимся сами и помогаем другим…

 

anat

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

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

Вот и спрашиваю…
Можно не удалить, а заменить на другой определенный текст, скажет «Данных нет».

Изменено: anat09.03.2015 19:18:59

 

The_Prist

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

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

Профессиональная разработка приложений для MS Office

#4

09.03.2015 13:45:47

Код
=ЕСЛИ(B1="Да";"";"Какой-то текст")

Еще можно условное форматирование применить. См вложение.

Прикрепленные файлы

  • YesNo.xlsx (8.08 КБ)

Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы…

 

Leanna

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

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

Нет, такое только макросом возможно.

Работать надо не 12 часов, а головой.

 

anat

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

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

The_Prist, меняться должно содержимое ячейки А1.

Leanna, а как? И еще вопрос: этой таблицей будут пользоваться люди на других компах, макросы будут работать? Файл хранится в сети.

 

Сергей

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

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

мож так пойдет меняйте в столбце Б да нет

Изменено: Сергей09.03.2015 13:53:41
(пока варганил пример Дмитрий уже выложил тоже УФ)

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

 

anat

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

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

The_Prist, условное форматирование — увы, клиент требует удалить данные.

 

anat

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

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

Сергей, увы, как раз ответила выше

 

Leanna

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

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

Макросы будут работать если они их включат. По умолчанию вроде обычно безопасность выставлена отключать макросы.
Если хотите макросами прикладывайте файл-пример.

Работать надо не 12 часов, а головой.

 

The_Prist

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

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

Профессиональная разработка приложений для MS Office

#11

09.03.2015 13:55:08

Цитата
anat написал: увы, клиент требует удалить данные

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

Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы…

 

anat

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

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

#12

09.03.2015 14:00:31

Понятно…
Спасибо всем!

Содержание

  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 ‘цикл с третьей строки до трехсотой

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

Источник

Excel для Microsoft 365 Excel 2021 Excel 2019 Excel 2016 Excel 2013 Excel 2010 Excel 2007 Еще…Меньше

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

  1. Вы можете выбрать ячейки, строки или столбцы, которые нужно очистить.

    Совет: Чтобы отменить выделение ячеек, щелкните любую ячейку на листе.

  2. На вкладке Главная в группе Редактирование щелкните стрелку рядом с кнопкой Очистить Изображение кнопкии сделайте следующее:

    • Чтобы очистить все содержимое, форматы и приметки, содержащиеся в выбранных ячейках, нажмите кнопку Очистить все.

    • Чтобы очистить только форматы, примененные к выбранным ячейкам, нажмите кнопку Очистить форматы.

    • Чтобы очистить только содержимое выбранных ячеек, оставив на месте любые форматы и комментарии, нажмите кнопку Очистить содержимое.

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

    • Чтобы очистить все гиперссылки, прикрепленные к выбранным ячейкам, выберите очистить гиперссылки.

Примечания: 

  • Если щелкнуть ячейку и нажать кнопку DELETE или BACKSPACE, содержимое ячейки будет очищено без удаления форматов и приметок к ячейкам.

  • Если очистить ячейку с помощью окну Очистить все или Очистить содержимое,ячейка больше не содержит значения, а формула, которая ссылается на эту ячейку, получает значение 0 (ноль).

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

Нужна дополнительная помощь?

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

Чтобы было понятно о чем пойдет речь, вспомним, что ячейка — это часть табличного пространства, образованная пересечением строки и столбца. Ячейка может содержать какие-то значения, например числа, текст, формулы и так далее, а также может содержать информацию о шрифтах, их цветах и размерах, заливках, рамках, защите и так далее. Таким образом, удалять можно как сами ячейки со всем их содержимым (при этом место удаленной ячейки занимает новая, а всё табличное пространство смещается либо вверх, либо влево) так и часть информации, например только значения или только форматы. В этой публикации речь пойдет об удалении значений, когда сами ячейки остаются на своих местах и информация об их форматах остается неизменной.

Стандартные средства для удаления значений ячеек

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

Для того чтобы очистить место в таблице для внесения новых значений можно выделять поочередно нужные диапазоны ячеек и нажимать кнопку «Delete» на клавиатуре, как говорится, медленно, но верно. Проделав такую операцию полтора десятка раз невольно появляется вопрос «а можно ли как-нибудь быстрее?». Конечно можно! Даже нужно. В Microsoft Excel 2007 и выше для этих целей подойдет такой инструмент как «Выделение группы ячеек». Для этого выбираем на ленте Excel вкладку «Главная», переходим в группу «Редактирование», нажимаем кнопку «Найти и выделить» и выбираем команду «Выделение группы ячеек». Появляется одноименное диалоговое окно, при помощи которого можно выделить определенные ячейки таблицы и после этого удалить их значения.

vyborochnoe-vydelenie-yacheek-excel

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

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

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

Использование надстройки позволяет:

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

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

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

Видео по работе с надстройкойsmotret-video

kak udalit znacheniya yacheek v Excel

CompleteSolutionмакрос (надстройка) для выборочного удаления значений из ячеек

Видео по выборочному удалению значений ячеек

Другие материалы по теме:

Like this post? Please share to your friends:
  • Excel очистить все горячие клавиши
  • Excel очень скрытые листы
  • Excel очень сильно тормозит
  • Excel очень долго открывает файлы
  • Excel оценка профессиональных рисков