Скрытие/отображение ненужных строк и столбцов
Постановка задачи
Предположим, что у нас имеется вот такая таблица, с которой приходится «танцевать» каждый день:
Кому таблица покажется маленькой — мысленно умножьте ее по площади в двадцать раз, добавив еще пару кварталов и два десятка крупных российских городов.
Задача — временно убирать с экрана ненужные в данный момент для работы строки и столбцы, т.е.,
- скрывать подробности по месяцам, оставляя только кварталы
- скрывать итоги по месяцам и по кварталам, оставляя только итог за полугодие
- скрывать ненужные в данный момент города (я работаю в Москве — зачем мне видеть Питер?) и т.д.
В реальной жизни примеров таких таблиц — море.
Способ 1. Скрытие строк и столбцов
Способ, прямо скажем, примитивный и не очень удобный, но два слова про него сказать можно. Любые выделенные предварительно строки или столбцы на листе можно скрыть, щелкнув по заголовку столбца или строки правой кнопкой мыши и выбрав в контекстном меню команду Скрыть (Hide):
Для обратного отображения нужно выделить соседние строки/столбцы и, щелкнув правой кнопкой мыши, выбрать в меню, соответственно, Отобразить (Unhide).
Проблема в том, что с каждым столбцом и строкой придется возиться персонально, что неудобно.
Способ 2. Группировка
Если выделить несколько строк или столбцов, а затем выбрать в меню Данные — Группа и структура — Группировать (Data — Group and Outline — Group), то они будут охвачены прямоугольной скобкой (сгруппированы). Причем группы можно делать вложенными одна в другую (разрешается до 8 уровней вложенности):
Более удобный и быстрый способ — использовать для группировки выделенных предварительно строк или столбцов сочетание клавиш Alt+Shift+стрелка вправо, а для разгруппировки Alt+Shift+стрелка влево, соответственно.
Такой способ скрытия ненужных данных гораздо удобнее — можно нажимать либо на кнопку со знаком «+» или «—«, либо на кнопки с цифровым обозначением уровня группировки в левом верхнем углу листа — тогда все группы нужного уровня будут сворачиваться или разворачиваться сразу.
Кроме того, если в вашей таблице присутствуют итоговые строки или столбцы с функцией суммирования соседних ячеек, то есть шанс (не 100%-ый правда), что Excel сам создаст все нужные группировки в таблице одним движением — через меню Данные — Группа и структура — Создать структуру (Data — Group and Outline — Create Outline). К сожалению, подобная функция работает весьма непредсказуемо и на сложных таблицах порой делает совершенную ерунду. Но попробовать можно.
В Excel 2007 и новее все эти радости находятся на вкладке Данные (Data) в группе Структура (Outline):
Способ 3. Скрытие помеченных строк/столбцов макросом
Этот способ, пожалуй, можно назвать самым универсальным. Добавим пустую строку и пустой столбец в начало нашего листа и отметим любым значком те строки и столбцы, которые мы хотим скрывать:
Теперь откроем редактор Visual Basic (ALT+F11), вставим в нашу книгу новый пустой модуль (меню Insert — Module) и скопируем туда текст двух простых макросов:
Sub Hide() Dim cell As Range Application.ScreenUpdating = False 'отключаем обновление экрана для ускорения For Each cell In ActiveSheet.UsedRange.Rows(1).Cells 'проходим по всем ячейкам первой строки If cell.Value = "x" Then cell.EntireColumn.Hidden = True 'если в ячейке x - скрываем столбец Next For Each cell In ActiveSheet.UsedRange.Columns(1).Cells 'проходим по всем ячейкам первого столбца If cell.Value = "x" Then cell.EntireRow.Hidden = True 'если в ячейке x - скрываем строку Next Application.ScreenUpdating = True End Sub Sub Show() Columns.Hidden = False 'отменяем все скрытия строк и столбцов Rows.Hidden = False End Sub
Как легко догадаться, макрос Hide скрывает, а макрос Show — отображает обратно помеченные строки и столбцы. При желании, макросам можно назначить горячие клавиши (Alt+F8 и кнопка Параметры), либо создать прямо на листе кнопки для их запуска с вкладки Разработчик — Вставить — Кнопка (Developer — Insert — Button).
Способ 4. Скрытие строк/столбцов с заданным цветом
Допустим, что в приведенном выше примере мы, наоборот, хотим скрыть итоги, т.е. фиолетовые и черные строки и желтые и зеленые столбцы. Тогда наш предыдущий макрос придется немного видоизменить, добавив вместо проверки на наличие «х» проверку на совпадение цвета заливки с произвольно выбранными ячейками-образцами:
Sub HideByColor() Dim cell As Range Application.ScreenUpdating = False For Each cell In ActiveSheet.UsedRange.Rows(2).Cells If cell.Interior.Color = Range("F2").Interior.Color Then cell.EntireColumn.Hidden = True If cell.Interior.Color = Range("K2").Interior.Color Then cell.EntireColumn.Hidden = True Next For Each cell In ActiveSheet.UsedRange.Columns(2).Cells If cell.Interior.Color = Range("D6").Interior.Color Then cell.EntireRow.Hidden = True If cell.Interior.Color = Range("B11").Interior.Color Then cell.EntireRow.Hidden = True Next Application.ScreenUpdating = True End Sub
Однако надо не забывать про один нюанс: этот макрос работает только в том случае, если ячейки исходной таблицы заливались цветом вручную, а не с помощью условного форматирования (это ограничение свойства Interior.Color). Так, например, если вы с помощью условного форматирования автоматически подсветили в своей таблице все сделки, где количество меньше 10:
…и хотите их скрывать одним движением, то предыдущий макрос придется «допилить». Если у вас Excel 2010-2013, то можно выкрутиться, используя вместо свойства Interior свойство DisplayFormat.Interior, которое выдает цвет ячейки вне зависимости от способа, которым он был задан. Макрос для скрытия синих строк тогда может выглядеть так:
Sub HideByConditionalFormattingColor() Dim cell As Range Application.ScreenUpdating = False For Each cell In ActiveSheet.UsedRange.Columns(1).Cells If cell.DisplayFormat.Interior.Color = Range("G2").DisplayFormat.Interior.Color Then cell.EntireRow.Hidden = True Next Application.ScreenUpdating = True End Sub
Ячейка G2 берется в качестве образца для сравнения цвета. К сожалению, свойство DisplayFormat появилось в Excel только начиная с 2010 версии, поэтому если у вас Excel 2007 или старше, то придется придумывать другие способы.
Ссылки по теме
- Что такое макрос, куда вставлять код макроса, как их использовать
- Автоматическая группировка в многоуровневых списках
Содержание
- Как удалить/скрыть столбцы в Excel по условию? Работа со столбцами
- С чем имеем дело?
- Сколько столбцов в рабочем листе?
- Как выделить столбец? Как выделить несколько столбцов подряд? Как выделить несколько столбцов выборочно?
- Как изменить стиль заголовков столбцов?
- Как закрепить столбцы на листе? Как снять закрепление столбцов на листе?
- Как изменить ширину столбца? Как задать автоподбор ширины столбца? Как задать фиксированную ширину столбцов? Как задать ширину столбцов по умолчанию?
- Как транспонировать значения столбцов в строки?
- Как добавить новый столбец в таблицу? Как вставить скопированный столбец?
- Как очистить столбцы от содержимого? Как скрыть и отобразить столбцы? Как удалить столбцы?
- Как удалять либо скрывать столбцы макросом при соблюдении условия?
- Как удалять либо скрывать столбцы макросом по нескольким условиям?
- Как скрыть строки по условию в excel
- Скрыть строки в Excel по условию
- Как в excel скрыть столбец при условии?
- Удаление (скрытие) строк по условию
- Комментарии
Как удалить/скрыть столбцы в Excel по условию? Работа со столбцами
Рассмотрим наиболее распространенные вопросы, касающиеся столбцов Excel, на примере Excel 2007, а также познакомимся с надстройкой (макросом), автоматизирующей удаление и скрытие столбцов Excel по заданному условию.
С чем имеем дело?
Рабочая книга (Workbook) – это файл Excel, содержащий рабочие листы. Рабочий лист (Worksheet) — это электронная таблица, которая используется приложением Excel для хранения и обработки данных. Рабочий лист состоит из ячеек. Ячейка – это основной элемент электронной таблицы. Именно ячейки являются носителями информации и содержат текст, значения, примечания, формулы и т.д. Каждая ячейка имеет свой адрес – номер строки и номер столбца, на пересечении которых эта ячейка находится. Ячейки организованы в столбцы и строки и являются частью рабочей книги.
Сколько столбцов в рабочем листе?
Количество столбцов в Excel варьируется в зависимости от версии, так в версии Excel 2003 столбцов 256, а в версиях 2007 и 2010 уже 16 384. Сумму значений столбца можно узнать, выделив столбец и посмотрев параметр «Сумма выделенных ячеек» в строке состояния. Строка состояния находится внизу окна, под горизонтальной полосой прокрутки.
Состав строки состояния может быть настроен на усмотрение пользователя, для этого необходимо кликнуть правой кнопкой мыши на свободном месте строки состояния. Ниже приведен набор параметров, выводить которые в строке состояния можно путем установки флажка перед соответствующим параметром.
Как выделить столбец? Как выделить несколько столбцов подряд? Как выделить несколько столбцов выборочно?
Выделить столбец можно однократным кликом левой кнопкой мыши по имени столбца либо нажатием сочетания клавиш Ctrl+Spase (клавиша пробел), либо поместить курсор (маркер выделения) в самую первую ячейку нужного столбца и нажать сочетание клавиш Ctrl+Shift+Стрелка вниз. Несколько столбцов подряд можно выделить, проведя курсором по названиям столбцов с нажатой левой кнопкой мыши, либо выделить первый столбец нужного диапазона столбцов, а затем при нажатой клавише Shift выделить последний столбец диапазона столбцов. Выделить несколько столбцов выборочно, можно щелкая курсором по именам нужных столбцов при нажатой клавише Ctrl.
Как изменить стиль заголовков столбцов?
В Excel столбцы буквами обозначаются по умолчанию, но есть еще способ обозначения столбцов цифрами. При этом способе адрес выделенной ячейки выглядит не как А1, а как R1C1, где R1 (сокращение слова Row – строка) обозначает номер строки, а C1 (сокращение слова Column – колонка) обозначает номер столбца. Изменить способ отображения заголовков столбцов можно в меню «Параметры Excel» после нажатия кнопки «Office». В разделе «Формулы» в группе «Работа с формулами» необходимо поставить флажок перед полем «Стиль ссылок R1C1».
Как закрепить столбцы на листе? Как снять закрепление столбцов на листе?
При работе с таблицами, которые в ширину выходят за видимые пределы экрана для удобства ввода и просмотра данных можно закрепить нужные столбцы. Для этого необходимо выделить столбец, следующий за нужным, перейти во вкладку «Вид», в группу «Окно», нажать кнопку «Закрепить области» и в выпадающем списке команд выбрать пункт «Закрепить области». Для закрепления первого столбца можно не выделяя столбца выбрать пункт «Закрепить первый столбец» в меню кнопки «Закрепить области».
Для закрепления следующих столбцов нужно снять предыдущее закрепление, если оно имеется. Для этого надо зайти на все ту же вкладку «Вид» и в группе «Окно» раскрыть меню кнопки «Закрепить области» после чего выбрать пункт «Снять закрепление областей».
Как изменить ширину столбца? Как задать автоподбор ширины столбца? Как задать фиксированную ширину столбцов? Как задать ширину столбцов по умолчанию?
Ширину столбцов в Excel можно изменять как в сторону увеличения, так и в сторону уменьшения. Для изменения ширины столбца подводим курсор мыши к границе двух соседних столбцов и в тот момент, когда курсор станет двухсторонней горизонтальной стрелкой, нажимаем левую кнопку мыши и перемещаем границу между столбцами в нужном направлении. При этом если было выделено несколько столбцов, то ширина изменилась бы у каждого из них. Автоподбор ширины столбца можно задать на вкладке «Главная», в группе «Ячейки», меню кнопки «Формат», выбрав пункт «Автоподбор ширины столбца».
Автоподбор ширины столбца можно также задать двойным кликом левой кнопки мыши на правой границе столбца возле его имени. При этом если выделены несколько столбцов, то автоподбор применится ко всем столбцам выделенной группы. Ширина столбца по умолчанию зафиксирована в 8,43 символа при размере букв 10 пунктов, но фиксированную ширину можно задать своим собственным значением, для этого выделяем нужные столбцы, на выделенном диапазоне кликаем правой кнопкой мыши и в контекстном меню выбираем пункт «Ширина столбца…». В появившемся окне «Ширина столбца» устанавливаем нужную нам ширину. Для того чтобы задать произвольную ширину столбца по умолчанию, заходим на вкладку «Главная», выбираем группу «Ячейки», раскрываем меню кнопки «Формат» и выбираем пункт «Ширина по умолчанию», где задаем свое значение, после чего нажимаем кнопку «ОК».
Как транспонировать значения столбцов в строки?
Без особого труда можно преобразовать Excel столбец в строку и наоборот. Такое преобразование называется транспонированием. Для преобразования столбца в строку необходимо скопировать данные столбца, после чего нажать правую кнопку мыши и из контекстного меню выбрать пункт «Специальная вставка…». В появившемся диалоговом окне «Специальная вставка» поставить галочку в поле «транспонировать» и нажать кнопку «ОК». Еще один способ — зайти на вкладку «Главная», в группу «Буфер обмена», открыть меню кнопки «Вставить» и выбрать из него пункт «Транспонировать».
Как добавить новый столбец в таблицу? Как вставить скопированный столбец?
Вставить новый столбец в таблицу можно, кликнув правой кнопкой мыши на имени столбца, левее которого надо поместить новый столбец и выбрать в контекстном меню пункт «Вставить». Аналогичное действие можно осуществить через главное меню Excel. В окне открытого листа выделите столбец, левее которого надо поместить новый столбец, после этого зайдите на вкладку «Главная», в группу «Ячейки», раскройте меню кнопки «Вставить» и выберите в списке пункт «Вставить столбцы на лист». При вставке новых столбцов, общее количество столбцов на листе остается неизменным.
При вставке скопированных столбцов предусмотрены разные режимы вставки, так например, при осуществлении вставки в контекстном меню есть три пункта, относящиеся к вставке – «Вставить», «Специальная вставка» и «Вставить скопированные ячейки». При выборе пункта «Вставить», данные вставляются вместо или поверх тех данных, которые находились в столбце, куда производится вставка. При выборе же пункта «Вставить скопированные ячейки» данные вставляются рядом, старые значение столбца сохраняются, но смещаются при этом в сторону. Описанные выше способы вставки, сделают полные копии ячеек в столбцах, включая текст, форматы, формулы и примечания. При выборе пункта «Специальная вставка» можно произвести частичное копирование, выбрав из предложенного списка только нужный параметр.
Как очистить столбцы от содержимого? Как скрыть и отобразить столбцы? Как удалить столбцы?
Для очистки столбцов от содержимого нужно выделить нужный диапазон и нажать клавишу Delete на клавиатуре либо кликнуть правой кнопкой мыши на выделенном диапазоне и выбрать из контекстного меню пункт «Очистить содержимое». Очистить столбцы от содержимого можно также на вкладке «Главная» в группе «Редактирование», меню кнопки «Очистить».
Через меню кнопки «Очистить» можно на выбор произвести очистку выделенных столбцов от содержимого (текста, цифровых значений, формул), от форматов, от примечаний, а можно произвести полную очистку, выбрав пункт «Очистить все». Информацию, расположенную в столбцах или строках, можно скрывать. Скрытые данные не удаляются, а временно не выводятся на экран. Для скрытия столбца, его необходимо выделить, затем щелкнуть правой кнопкой мыши в любом месте выделенного диапазона либо на названии столбца и выбрать из контекстного меню пункт «Скрыть». Для отображения скрытых столбцов нужно выделить два столбца, между которых находятся скрытые столбцы и, щелкнув правой кнопкой мыши, выбрать из контекстного меню пункт «Отобразить». Скрытие и отображение столбцов можно также производить на вкладке «Главная», в группе «Ячейки», в меню кнопки «Формат».
Удаление столбцов производится абсолютно аналогично их скрытию, только в контекстном меню вместо пункта «Скрыть» выбирается пункт «Удалить», а на вкладке «Главная», в группе «Ячейки», выбирается кнопка «Удалить» вместо кнопки «Формат».
Как удалять либо скрывать столбцы макросом при соблюдении условия?
При работе с объемными таблицами данных, зачастую приходится заниматься скрытием или удалением лишних столбцов с данными, это могут быть, например, пустые столбцы, либо столбцы с промежуточными расчетами, либо столбцы, содержащие определенный текст. Процесс, мягко говоря, утомительный. Как раз в таких случаях существенно облегчит жизнь надстройка для быстрой и безошибочной обработки столбцов. Посмотрим на возможности, предоставляемые этой надстройкой.
На выбор пользователя надстройка позволяет удалять либо скрывать пустые столбцы, а может на выбор пользователя скрывать либо удалять столбцы, удовлетворяющие заданным условиям, например, таким как содержание заданного текста, либо отсутствием такового, может учитывать регистр при поиске текста в столбцах, а может не учитывать. Для того, чтобы при удалении/скрытии в таблицах не пострадали столбцы с какими-либо промежуточными результатами, введено дополнительное ограничение по номерам столбцов, при помощи которого можно задавать диапазон для действия макроса. Если же диапазон не задан пользователем, то макрос работает со столбцами, так называемого используемого диапазона, то есть со столбца, в котором содержится первая заполненная информацией ячейка, до столбца с последней заполненной ячейкой. Пользователю также предлагается ограничить обработку данных либо активным листом, либо всеми листами активной рабочей книги.
Как удалять либо скрывать столбцы макросом по нескольким условиям?
Специально для случаев, когда необходимо удалять либо скрывать столбцы, содержащие разные слова, либо сочетания слов, надстройка доработана таким образом, чтобы можно было ввести сразу все искомые слова либо их сочетания в поле для ввода текста. При этом в качестве разделителя используется знак точка с запятой (;). Это позволяет сократить количество запусков макроса и сделать необходимые манипуляции со столбцами за один раз.
1) Скрывать либо удалять столбцы;
2) Выбирать одно из нескольких условий для искомых значений (совпадает, не совпадает, содержит, не содержит, начинается, не начинается, заканчивается, не заканчивается);
3) Находить пустые столбцы и столбцы, содержащие заданный текст;
4) Позволяет осуществлять одновременный поиск различных текстовых выражений, внесенных в поле для ввода текста с использованием знака-разделителя. В качестве знака-разделителя используется (;) точка с запятой ;
5) Выбирать различные диапазоны для обработки данных;
6) Ограничивать выбранные диапазоны номерами столбцов слева и/или справа для избежания повреждения боковых шапок таблиц и столбцов с разного рода промежуточными итогами;
7) Осуществлять поиск текста в столбцах как с учетом регистра, так и без.
При нажатии кнопки «Пуск» макрос скроет либо удалит пустые столбцы, либо столбцы, содержащие заданный пользователем текст на активном листе либо на всех листах рабочей книги.
Источник
Как скрыть строки по условию в excel
Скрыть строки в Excel по условию
Фильтрация позволяет выделить подмножество данных из таблицы, т.к. в результате фильтрации отображаются только данные, соответствующие заданным условиям.
Для включения/выключения фильтрации данных используйте кнопку « Фильтрация », расположенную в группе « Анализ » на вкладке « Таблица » ленты инструментов. Раскрывающееся меню кнопки предназначено для настройки условий фильтрации (фильтров):
Отключить . Установка флажка отключает фильтрацию данных;
флажки, соответствующие различным фильтрам:
Скрыть пустые строки и столбцы . Скрываются столбцы и строки, не содержащие никаких данных;
Скрыть строки и столбцы с нулевыми значениями . Скрываются столбцы и строки, содержащие только нулевые значения;
Скрыть строки и столбцы с нечисловыми значениями . Скрываются строки и столбцы, содержащие только нечисловые значения;
Скрыть строки и столбцы по условию . Фильтр не реализован.
Совет . Несколько фильтров можно применять одновременно. Каждый следующий фильтр добавляется к результатам предыдущего и дополнительно сужает подмножество данных.
Другие способы фильтрации . Отображает диалог « Фильтрация данных », предназначенный для настройки пользовательских параметров фильтрации:
Скрыть ячейки . Группа служит для настройки условия фильтрации числовых значений. Скрыты будут значения, соответствующие заданному условию. По умолчанию условие не задано.
большие или равные А;
меньшие или равные А;
между А и В включительно;
меньшие А или большие В.
Скрыть . Группа служит для настройки параметров скрытия ячеек. Если флажок установлен, то соответствующий тип ячеек будет скрыт. Возможно скрыть: нулевые, нечисловые, пустые ячейки;
Оставлять владельцев нескрытых элементов . Установка флажка позволяет оставлять в «отфильтрованной» таблице владельцев (родителей) элементов, не отвечающих условию фильтрации, даже если их собственные значения удовлетворяют условию фильтрации;
Область действия . Группа служит для указания области таблицы, к которой будет применяться фильтрация:
Область применения . Диапазон ячеек таблицы, предназначенных для фильтрации. Возможные варианты: фильтрация в рамках всей таблицы либо в рамках выделенной области;
Область действия . Ячейки в заданном диапазоне, предназначенные для фильтрации. Возможные варианты: фильтрация только строк, фильтрация только столбцов, фильтрация строк и столбцов.
Как в excel скрыть столбец при условии?
Как сделать, чтобы исчезли столбцы (и не печатались на принтере), если указанная ячейка этого столбца на 9 строке, равная «»
Ячейки из диапазона =AF9:AH9
Например, сейчас пустые ячейки AG9 (скрывается столбец AG), AH9 (скрывается столбец AH).
Работаем только с диапазоном AF9:AH9, повторюсь, интересует исчезновение столбцов AF, AG , AH, если ячейки AF9, AG9 , AH9 пустые, соответственно.
Если бы была пустая ячейка AF9 , то скрывался бы столбец AF весь.
Удаление (скрытие) строк по условию
макрос удалит на листе все строки, в которых содержится искомый текст:
Чтобы вместо удаления просто скрыть такие строки, замените строку
Расширенная версия этого макроса — с использованием UserForm для ввода искомого значения
Ещё один вариант кода, позволяющего выполнять поиск (с последующим удалением или скрытием строк) сразу по нескольким условиям:
ConditionalRowsDeleting.xls | 24 КБ |
ConditionalRowsDeletingUsingUserform.xls | 45.5 КБ |
- 226137 просмотров
Комментарии
Я не занимаюсь поддержкой бесплатных макросов, и модификацией их под ваши требования.
В комментариях к статье есть очень много вариантов переделки этого макроса, — полистайте комменты, может найдете подходящий вариант кода.
Если же хотите получить готовое решение, — оформляйте заказ на сайте, сделаю (платно. минимальная стоимость заказа 1500 рублей)
Добавление комментариев к данной статье на этом отключаю.
Подскажите пожалуйста. Мучаюсь уже неделю. Не могу переделать существующие макросы для скрытия строк. Имеется таблица с цифрами. Нужно что бы скрывались строки если одновременно в столбце А и В и С и D значение меньше чем 0. Было бы не плохо это значение вводить в user form и там были кнопочки скрыть и показать все. Помогите пожалуйста. Да и ещё количество строк может бить разное. А цифровые значения начинаются с второй строки.
Здравствуйте, у меня такая ситуация. Есть таблица, с 3000 строками, и примерно 25 столбиками
Первые 10 столбиков заполнены текстом, с 11 по 25 столбик бывают цифры. Как мне удалить полностью строку, если в столбики с 11 по 25 все пустые ячейки ? а если хоть одна ячейка заполнена, то строку не трогать? но на первые десять столбиков не надо обращать внимание
А как сделать такое же условие для объеденных ячеек только по нескольким значениям?
Я должен был догадаться, какие листы надо обрабатывать, а какие нет?
Чтобы обработать ВСЕ листы, — напишите
Большое спасибо, но у меня следующие листы «3», «3А», «3Б», «4».
Подскажите, как сделать этот макрос для листов «2», «2А», «2Б» и т. д.
Sub УдалениеСтрокПоУсловию()
Dim ra As Range, delra As Range, ТекстДляПоиска As String
Application.ScreenUpdating = False ‘ отключаем обновление экрана
ТекстДляПоиска = «Наименование ценности» ‘ удаляем строки с таким текстом
‘ перебираем все строки в используемом диапазоне листа
For Each ra In ActiveSheet.UsedRange.Rows
‘ если в строке найден искомый текст
If Not ra.Find(ТекстДляПоиска, , xlValues, xlPart) Is Nothing Then
‘ добавляем строку в диапазон для удаления
If delra Is Nothing Then Set delra = ra Else Set delra = Union(delra, ra)
End If
Next
‘ если подходящие строки найдены — удаляем их
If Not delra Is Nothing Then delra.EntireRow.Delete
End Sub
Если необходимо наоборот отобразить строки «EntireRow.Hidden = False»
То как осуществить поиск текста в скрытых строках/столбцах?
Здравствуйте. Подскажите, пожалуйста, как прописать макрос так, чтоб он:
1. удалял все строки с заливкой цветом, или
2. удалял все строки, содержащие какую либо ячейку с заливкой цветом.
Спасибо.
Игорь,благодарю за макрос — облегчает жизнь! Вы не посоветуете как работать с этим макросом при защите листа?
Добрый день! Подскажите пожалуйста, Как сделать макрос скрывающий строки при условии что в двух подряд столбцах 0 или пусто? и чтоб он запускался не при открытии файла, а кнопкой?
у меня вариант с условием одного столбца, как его исправить
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim d As Integer
d = UsedRange.Rows.Count + 1
For rwIndex = 1 To 31
colIndex = 3
If Cells(rwIndex, colIndex).Value = 0 Then
Rows(rwIndex).Hidden = True
End If
Next
End Sub
Буду очень признательна)
Добрый день! У меня проблема с большими таблицами и с их колличеством) В одной книге у меня 25 листов на каждом большие таблицы, для удбства печати я создала макрос скрывающий ненужные строки, столбцы и ячейки во всей книге сразу, поочередно на каждом листе. Теперь хочу чтоб можно было сразу во всей книге развернуть скрытые ячейки. И не могу) Подскажите как исправить этот макрос чтоб он работал в модуле «Эта книга» для всех листов сразу
Sub Show()
Columns.Hidden = False
Rows.Hidden = False
Во — то что доктор прописал — спасибо! И извините за не корректность:)
Сандер, я написал код так, как вы просили, — если в ячейке присутствует цифра, то строка удаляется.
А вам надо было удалять только ячейки с ЧИСЛОМ (а не содержащие цифры)
Замените
Увы. работает аналогично с «Удаление (скрытие) строк по условию», т.е. если в тексте присутствует допустим «Адаптер АТ-2000 14 В22» — что там, что в вашем примере удаляет строку. Просто думал — есть что-нить персональное с цифрами.
Сандер, так попробуйте:
Здравствуйте! Пролистал, прочитал — таки не нашел ответ к своей задаче, а она такова: в столбце чередуются и текст и цифры — надо удалить строки которые содержат цифры(они естно — разные). Спасибо!
Евгений, при работе макросов, отмена действий в Excel не работает
(что сделано макросом, никак не отменить, — так устроен Excel)
Подскажите. после удаления строк с помощью макроса, нельзя почему то вернуть назад назад изменения.Что нужно сделать чтоб вернуть изменения назад.
Здравствуйте, Нурьяна.
Моя программа нормально работает, — если ей правильно настроить
(настройка под каждый конкретный сайт, — от 1500 руб, + сама программа 2500 стоит)
PS: на будущее, размещайте коммент не в первой попавшейся статье, а в статье с описанием программы-парсера
http://excelvba.ru/programmes/Parser
можете сразу оформить заказ на парсер, в таком виде:
http://excelvba.ru/programmes/Parser/order
Здравствуй Админ! Долго Вас искала. подрабатываю на СП закупках, и уже замучилась с заполнением каталогов, сил больше нет. Как-то покупала граббер у одного программиста, ну вообще не довольна , на одну закупку граббер стоит 2800, и работает через раз. Скажите как работает Ваша программа и сколько стоит, и можно ее настроить под сайт на котором я работаю и пользоваться ею постоянно один раз заплатив?
Можем сделать под заказ, — всё будет работать как надо.
Хоть убейте — не работает. Идея в том, что макрос срабатывает при нажатии на ячейку. Берет значение из текущей активной строки и 2 столбца, ищет на другом листе и должен его просто выделить. Вся идея.
В коде грешу на
«ВзятьДанные = Cells(ActiveCell.Row, 2).Value»
Он не берет значение -> не может найти его на другом листе. Как заставить его видеть значение. ( Кавычки ставил — не помогает.
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim ra As Range, finra As Range
If Target.Cells.Value = «» Then Exit Sub
If Not Intersect(Target, Range(«AF3:AF5000»)) Is Nothing Then
ВзятьДанные = Cells(ActiveCell.Row, 2).Value
Sheets(«Результат»).Select
For Each cell In Range(«A3:A2000»).Cells
If cell = ВзятьДанные Then
If finra Is Nothing Then Set finra = cell Else Set finra = Union(finra, cell)
End If
Next
If Not finra Is Nothing Then finra.EntireRow.Select
Application.ScreenUpdating = True
End If
End Sub
Андрей, так попробуйте
Со скрытием строчек все отлично. но что делать, если в дальнейшем мне нужно некоторые скрытые строки вновь раскрыть (т.к. признак для скрытия для них может в будущем быть нерелевантен)?
Сделал такую билеберду, но скрытые строки он не раскрывает 🙁 Видимо не видит скрытые строки. Помогите советом пожалуйста!
Sub Макрос()
Dim ra As Range, delra As Range, ТекстДляПоиска As String
Application.ScreenUpdating = False
For Each ra In ActiveSheet.UsedRange.Rows
If Not ra.Find(ТекстДляПоиска, , xlValues, xlPart) Is Nothing Then
If delra Is Nothing Then Set delra = ra Else Set delra = Union(delra, ra)
End If
Next
If Not delra Is Nothing Then delra.EntireRow.Hidden = False
End Sub
Кирилл, так попробуйте:
УдалятьСтрокиСТекстом = Worksheets(«ИмяВторогоЛиста»).range(«a2:a10»)
или так
УдалятьСтрокиСТекстом = Worksheets(2).range(«a2:a10»)
Добрый день! Ваш макрос очень выручает, Подскажите, как сделать, чтобы слова для поиска брались не из строки = Array(«Наименование *», «Количество», «текст?», «цен*сти», «*78*»),а с другого листа
Спасибо, заработало.
Ну я и тупой.
Sub погрузка()
Dim ra As Range, delra As Range
Application.ScreenUpdating = False ‘ отключаем обновление экрана
‘ ищем и удаляем строки, содержащие заданный текст
‘ (можно указать сколько угодно значений и использовать подстановочные знаки)
УдалятьСтрокиСТекстом = Array(«ИД пункта:», «ИД маршрута:», _
«Название модели:», «Склад отгрузки:»)
‘ перебираем все строки в используемом диапозоне листа
For Each ra In ActiveSheet.UsedRange.Rows
‘ перебираем все фразы в массиве
If ra.Row >= 17 Then
For Each word In УдалятьСтрокиСТекстом
Next word
End If
‘ если в очередной строке листа найден искомый текст
If Not ra.Find(word, , xlValues, xlPart) Is Nothing Then
‘ добовляем строку в диапазон для удаления
If delra Is Nothing Then Set delra = ra Else Set delra = Union(delra, ra)
End If
Next
‘ если подходящие строки найдены, то (оставте одну из следующих строк)
If Not delra Is Nothing Then delra.EntireRow.Hidden = True ‘ скрываем их
If Not delra Is Nothing Then delra.EntireRow.Delete ‘ удаляем их
End Sub
Пожалуйста, подскажите что не так, в таком исполнении не хочет удалять с 17 строки.
Gjlcrf;bnt xnj yt nfr
If ra.row >= 17 then
For Each word In УдалятьСтрокиСТекстом
.
Next word
end if
Похоже я не совсем правильно выразил свою мысль, в макросе УдалениеСтрокПоНесколькимУсловиям нужно удалять строки с определенным текстом только с 17 строки и до конца листа.
Вместо
If delra Is Nothing Then Set delra = ra Else Set delra = Union(delra, ra)
пишете
ra.Replace («Что заменить», «»)
нет, мне в этом макросе нужно что бы текст удалялся с определенной сторки.
Судя по описанию задачи, Вам нужна штатная функция Эксель — заменить. Ctrl+H. Найти — пишете нужный Вам текст, поле «Заменить на» оставляете пустым.
а можете подсказать, как можно найти и удалить текст с определенной строки.
Источник
Предположим, у вас есть диапазон данных, и вы хотите скрыть строки на основе значения столбца, например, если значение ячейки столбца меньше 3000, затем скройте строку ячейки, как показано ниже.
В Excel вы можете использовать функцию «Фильтр» для фильтрации и скрытия строк на основе значения ячейки.
1. Выберите данные, которые нужно отфильтровать, и нажмите Данные > Фильтр. Смотрите скриншот:
2. Затем щелкните стрелку вниз, чтобы отобразить раскрывающийся список фильтров, и щелкните Числовые фильтры (или текстовые фильтры) > Больше чем (вы можете выбрать другой критерий в подменю). Смотрите скриншот:
3. В появившемся диалоговом окне введите критерий в текстовое поле рядом с больше чем. Смотрите скриншот:
4. Нажмите OK. Теперь отображаются только данные, превышающие 3000, а строки, данные которых меньше 3000, скрыты.
Более того, если вас интересует код VBA, здесь я могу представить код VBA для скрытия строк на основе значения ячейки.
1. Нажмите Alt + F11 ключи для включения Microsoft Visual Basic для приложений окно.
2. Затем нажмите Вставить > Модули открыть новый Модули window и вставьте в него код VBA.
VBA: скрыть строки на основе значения ячейки.
Sub HideRow()
'Updateby20150618
Dim Rng As Range
Dim WorkRng As Range
Dim xNumber As Integer
On Error Resume Next
xTitleId = "KutoolsforExcel"
Set WorkRng = Application.Selection
Set WorkRng = Application.InputBox("Range", xTitleId, WorkRng.Address, Type:=8)
xNumber = Application.InputBox("Number", xTitleId, "", Type:=1)
For Each Rng In WorkRng
Rng.EntireRow.Hidden = Rng.Value < xNumber
Next
End Sub
3. Затем нажмите F5 нажмите клавишу для запуска VBA, затем выберите диапазон данных, в котором вы хотите скрыть строки в всплывающем диалоговом окне (за исключением заголовков). Смотрите скриншот:
4. Нажмите OK, и введите номер критерия во втором диалоговом окне. Смотрите скриншот:
5. Нажмите OK. Теперь строки, данные которых меньше 3000, скрыты.
Наконечник: Если вы хотите скрыть строки, превышающие 3000, просто измените Rng.EntireRow.Hidden = Rng.Value <xNumber в Rng.EntireRow.Hidden = Rng.Value> xNumber, или если вы хотите скрыть строки, данные которых равны 3000, измените на Rng.EntireRow.Hidden = Rng.Value = xNumber.
ЕСЛИ вам не нравится включать функцию фильтра, как и VBA, я представляю вам удобный инструмент — Выбрать определенные ячейки of Kutools for Excel чтобы быстро выбрать целые строки на основе значения ячейки, затем вы можете скрыть их.
После бесплатная установка Kutools for Excel, пожалуйста, сделайте следующее:
Наконечник. Если вы хотите получить бесплатную пробную версию функции извлечения текста, пожалуйста, перейдите на бесплатную пробную версию Kutools for Excel сначала, а затем перейдите к применению операции в соответствии с вышеуказанными шагами.
1. Выберите диапазон данных и нажмите Кутулс > Выберите > Выбрать определенные ячейки. Смотрите скриншот:
2. в Выбрать определенные ячейки диалог, проверьте Весь ряд под Тип выбора раздел, затем выберите нужный критерий из Конкретный тип список, затем введите число или текст в текстовое поле. Смотрите скриншот:
3. Нажмите Ok > OK закрыть диалоги. Теперь выбираются строки, данные которых меньше 3000, и вам просто нужно щелкнуть правой кнопкой мыши заголовок строки, чтобы отобразить контекстное меню, и выбрать «Скрыть». Смотрите скриншот:
Теперь строки, данные которых меньше 3000, скрыты.
Наконечник:
1. Если вы хотите скрыть строки, содержащие определенное значение, вы можете выбрать Комплект и введите определенное значение в текстовое поле.
2. Если вы хотите скрыть строки, которые содержат значения больше, но меньше значений, вы можете выбрать Больше и Менее, затем введите значения в два поля и установите флажок И,.
Работы С Нами Kutools for ExcelАвтора Выбрать определенные ячейки утилита, вы можете определить расположение определенных ячеек, выбрать целые строки или столбцы на основе значения ячейки и так далее. Щелкните здесь, чтобы узнать больше об этой утилите.
Лучшие инструменты для работы в офисе
Kutools for Excel Решит большинство ваших проблем и повысит вашу производительность на 80%
- Снова использовать: Быстро вставить сложные формулы, диаграммы и все, что вы использовали раньше; Зашифровать ячейки с паролем; Создать список рассылки и отправлять электронные письма …
- Бар Супер Формулы (легко редактировать несколько строк текста и формул); Макет для чтения (легко читать и редактировать большое количество ячеек); Вставить в отфильтрованный диапазон…
- Объединить ячейки / строки / столбцы без потери данных; Разделить содержимое ячеек; Объединить повторяющиеся строки / столбцы… Предотвращение дублирования ячеек; Сравнить диапазоны…
- Выберите Дубликат или Уникальный Ряды; Выбрать пустые строки (все ячейки пустые); Супер находка и нечеткая находка во многих рабочих тетрадях; Случайный выбор …
- Точная копия Несколько ячеек без изменения ссылки на формулу; Автоматическое создание ссылок на несколько листов; Вставить пули, Флажки и многое другое …
- Извлечь текст, Добавить текст, Удалить по позиции, Удалить пробел; Создание и печать промежуточных итогов по страницам; Преобразование содержимого ячеек в комментарии…
- Суперфильтр (сохранять и применять схемы фильтров к другим листам); Расширенная сортировка по месяцам / неделям / дням, периодичности и др .; Специальный фильтр жирным, курсивом …
- Комбинируйте книги и рабочие листы; Объединить таблицы на основе ключевых столбцов; Разделить данные на несколько листов; Пакетное преобразование xls, xlsx и PDF…
- Более 300 мощных функций. Поддерживает Office/Excel 2007-2021 и 365. Поддерживает все языки. Простое развертывание на вашем предприятии или в организации. Полнофункциональная 30-дневная бесплатная пробная версия. 60-дневная гарантия возврата денег.
Вкладка Office: интерфейс с вкладками в Office и упрощение работы
- Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
- Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
- Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!
Макрос скрывающий столбцы по условию в ячейке |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
Инструмент Excel позволяет нам обрабатывать разные типы данных ; Иногда нам нужно скрыть информацию о ячейке, для ее содержимого или для скрыть формулу в листе Excel . Итак, сегодня мы научим вас скрывать данные в Excel с помощью условного формата.
Мы можем скрыть строки или столбцы , даже конкретная ячейка или скрыть лист Excel с помощью макроса . Есть 2 способа предотвратить отображение содержимого, изменить размер ячейки или скрыть текст с тем же цветом фона.
Для этого вам просто нужно сделать выбор и перейти в «Главная> Ячейки> Формат> Видимость> Скрыть и показать» ; в этом варианте мы можем выбрать между скрытием и отображением отмеченной строки или столбца. Вы также можете отобразить контекстное меню в столбце или строке и выбрать параметр «Скрыть».
Мы можем замаскировать клетки с помощью выбрав опцию «Пуск> Шрифт> Цвет шрифта», где мы можем изменить цвет текста на белый. Если вы предпочитаете изменить фон ячеек, вам нужно перейти в «Главная> Ячейки> Формат> Защита> Формат ячеек> Заливка».
Эти методы будут оставлять данные скрытыми на неопределенное время. Но условные форматы — лучший вариант , чтобы показать им, когда выполняется условие, которое вы сами определили; его реализация очень проста.
Что такое условный формат?
Это инструмент, расположенный в «Главная страница> Стили> Условное форматирование», который изменить внешний вид или стиль одной или нескольких ячеек при соблюдении критерия, определенного правилом.
Применяются 6 типов правил формат ячеек в зависимости от значения или формулы, которые они содержат; в свою очередь, каждое правило позволяет применять стили к таблице или ячейке в Excel (шрифт и размер, границы, цвета фона, 2 или 3 цветовая шкала, панели данных и даже значки).
Можно изменить цвет ячейки с условным форматированием . Например, ячейка может быть отмечена красным, если значение оценки на основе 10 меньше 5 (что указывает на то, что учащийся не сдал экзамен). La разнообразие стилей и критериев то, что мы можем определить, почти бесконечно.
Как скрыть данные в Excel с помощью условного форматирования?
Лучший способ понять, как это делается, — это на примере. Сначала мы сделаем массив продаж, с указанием количества единиц и цены за единицу продукта, а также общего и промежуточного итогов произведенных продаж.
Построим еще одну таблицу с соотношением скидок в зависимости от количества проданных товаров; и мы хотим скрыть или показать эту вторую таблицу, используя условный формат, который будет активирован при установке флажка .
Нам нужно будет сделать вкладку «Разработчик» видимой в «Файл> Параметры Excel> Настроить ленту> Основные вкладки> Разработчик». Ставим коробку рядом со столом продаж в «Разработчик> Вставка> Поля формы> Поле» .
в настоящее время связываем коробку с ячейкой для сохранения своего состояния (если включено, будет отображаться ИСТИНА, а если отключено, будет ЛОЖЬ). Для этого щелкаем правой кнопкой мыши по полю и выбираем «Форматировать»; Откроется окно, в котором мы разместим выбранную ячейку, например B10.
Мы создадим правило который принимает значение ячейки B10 чтобы показать или скрыть таблицу скидок, в зависимости от того, активирован ли ящик или нет. Для этого мы выбираем весь диапазон ячеек в таблице, которые нужно скрыть, и переходим к опции «Главная> Стили> Условное форматирование> Новое правило».
В открывшемся окне выбираем последний вариант «Использовать формулу, определяющую ячейки для применения форматирования», мы введите формулу = $ B $ 10 = FALSE и заканчиваем на «ОК». При этом мы определили правило, которое будет делать таблицу невидимой, пока не будет установлен флажок.
Теперь, когда вы знаете, как скрыть данные с помощью условного форматирования, ваша работа в Excel станет более динамичной . Если вам понравилась эта статья, оставьте свой комментарий и поделитесь ею со своими контактами, чтобы продолжать расти как профессионалы.