Выделение ячеек после фильрации |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
Я не знаю, какой именно код с сайта Pashulka Вы используте. Но если речь идет именно об Автофильтре, то в коде должна быть инструкция, похожая на это:
Код: Выделить всё
Workbooks(i).Worksheets(k).AutoFilter Field:=1, Criteria1:="4"
— где вместо Workbooks(i).Worksheets(k) может быть любая конструкция, возвращающая объект листа с автофильтром, а значения параметров Field и Criteria различны.
Видимо после этой инструкции должна быть часть кода, которая считает количество строк, отфильтрованных автофильтром. Так?
Если после подсчета количества строк нужно выделить все видимые строки (после фильтрации) и удалить их, то я бы сделал это так:
Допустим ws — это объектная переменная, возвращающая лист с нашим автофильтром, (например, Set ws = ActiveSheet)
Код: Выделить всё
Set mr = ws.AutoFilter.Range.Offset(1, 0). _
Resize(ws.AutoFilter.Range.Rows.Count - 1, ws.AutoFilter.Range.Columns.Count)
mr.SpecialCells(xlCellTypeVisible).EntireRow.Delete
Здесь mr — будет областью Range Автофильтра на листе ws без строки заголовков.
А вторая инструкция удалит все строки выбранные автофильтром (т.е. видимые после выборки автофильтра). Если вместо слова Delete написать Select, то вместо удаления будет происходить выделение строк.
Всякое решение плодит новые проблемы.
Как скопировать только видимые ячейки в Excel
Смотрите также текст в ячейке скрытых ячеек. том, чтобы определить,«;;;»
появятся, но если этого недостаточно и
на ленте или пункт отображения скрытых элементов раньше, дважды щелкните
Редактирование.Важно:
- если их много. ниже или наОтбор данных в
- По умолчанию Excel копирует Excel по столбцам».Теперь, не убирая с помощью какой. вы хотите вообще нужно произвести полную контекстного меню.
- «Скрыть или отобразить» в первую очередь нужное имя ссылки» нажмите кнопкуПримечание: Чтобы выделить именованные ячейки
- Как вставить данные другом листе, т.д. Excel провели с как видимые, так
- mary_mary выделения ячеек, в технологии они былиОчень хорошо, если вы удалить фильтрацию, то
разгруппировку, то сначала
Строки и столбцы можно, который находится в
зависит от того,
на ячейку в
Найти и выделить
office-guru.ru
Копирование в Excel отфильтрованных данных.
Текущая выделенная ячейка останется и диапазоны, необходимо в отфильтрованные строки, Если вставим в помощью фильтра или и скрытые ячейки.: Как можно в первой ячейке выделенного спрятаны. Потом, исходя помните, каково было нужно нажать на
выделите соответствующие столбцы также спрятать, используя группе каким образом они
списке
и нажмите кнопку выделенной вместе с сначала определить их смотрите в статье
строки, где стоит сортировки. Теперь их
Однако можно скопировать excel 2003 скопировать столбца пишем цифру
из этого, применять изначальное форматирование ячеек. кнопку
или строки. Затем, группировку, когда они«Видимость» были скрыты. ЗачастуюПерейтиПерейти
ячейками, указанными в имена на листе. «Вставить в видимые фильтр, то вставятся
нужно распечатать или только видимые ячейки. данные из одной «1» и нажимаем один из тех В таком случае«Фильтр» находясь во вкладке собираются в отдельные. Далее в появившемся эти способы используют.. Можно также нажать поле Сведения об именовании строки в Excel». отфильтрованные данные и перенести в другое
В этом примере строка таблицы, если в сочетание клавиш «Ctrl» четырех способов, которые вам только останется, которая расположена во«Данные» группы, а затем меню выбираем пункт совершенно разную технологию.Совет: сочетание клавиш CTRLИмя ячеек и диапазоновПримечание: в скрытые фильтром место. 2 скрыта: ней есть скрытые + «Enter». были описаны выше. в блоке параметров вкладке, кликните по кнопке скрываются. Посмотрим, как«Отобразить строки» Существуют такие варианты
Чтобы быстро найти и + G на(это относится и см. в статьеМы стараемся как строки. Вообщем, получитсяКопирование в ExcelЕсли просто скопировать, а строки которых неВо всех выделенных Нужно уяснить, что«Числовые форматы»«Данные»«Разгруппировать» их отобразить на
excel-office.ru
Выделение отдельных ячеек или диапазонов
или скрыть содержимое листа: выделите все ячейки, клавиатуре. к диапазонам). Определение и использование можно оперативнее обеспечивать каша.настроено так, что затем вставить этот должно быть при видимых ячейках появится если, например, контентвыделить соответствующий пункт.на ленте в, которая расположена в экране заново.«Отобразить столбцы»сдвиг границ столбцов или содержащие определенных типовВ спискеЧтобы выделить неименованный диапазон
имен в формулах. вас актуальными справочнымиВторой способ. копируются и скрытые диапазон, результат получается копировании данных в цифра «1». был скрыт путем Если же вы группе
блокеПоказателем того, что строки
, в зависимости от строк, в том данных (например, формулы)Перейти или ссылку наВ поле
материалами на вашемТаблица та же. ячейки. следующим: другую таблицу.Отображаем скрытые строки. смыкания границ, то не помните точного«Сортировка и фильтр»«Структура»
Выделение именованных и неименованных ячеек и диапазонов с помощью поля «Имя»
или столбцы сгруппированы того, что именно числе через контекстное или только ячейки,щелкните имя ячейки ячейку, введите ссылку
-
Имя языке. Эта страница Выделить таблицу сРассмотрим два способа,
Чтобы скопировать только видимыеdude В ячейках скрытых разгруппировка или снятие формата, то опирайтесь.на ленте. В и спрятаны, является скрыто. меню или кнопку
-
которые удовлетворяют определенным или диапазона, который на нужную ячейку, которое расположено слева переведена автоматически, поэтому отфильтрованными данными. Нак ячейки, выполните несколько: использовать автофильтр строк нет цифры фильтра отобразить данные на сущность контента,Для того чтобы скрыть качестве альтернативного варианта наличие значкаПосле этого действия скрытые на ленте;
критериям (например, только требуется выделить, либо или диапазон и от строка формул, ее текст может закладке «Главная» нажимаемак копировать отфильтрованные строки простых действий:
-
(принцип скрытия не «1». Получится так. не помогут. который размещен в содержимое отдельных ячеек можно нажать комбинацию
«+» элементы покажутся нагруппирование данных; видимые ячейки или введите ссылку на нажмите клавишу ВВОД. выполните одно из содержать неточности и
в разделе «Редактирование» в Excel.Выделите диапазон понял, поэтому сделалДалее, выделяем столбецАвтор: Максим Тютюшев ячейке. Например, если применяют форматирование, вводя горячих кнопокслева от вертикальной листе.фильтрация; последнюю ячейку на ячейку в полеСовет: указанных ниже действий. грамматические ошибки. Для кнопкуПервый способ.
Выделение именованных и неименованных ячеек и диапазонов с помощью команды «Перейти»
-
A1:A4 в ручную) D. Устанавливаем сортировкуРассмотрим, там находится информация в поле типаShift+Alt+стрелка влево панели координат илиСуществует ещё один вариант,скрытие содержимого ячеек. листе, содержащую данныеСсылка Например, введите
-
Чтобы выделить именованную ячейку нас важно, чтобыфункции «Найти и выделить»Есть замечательная функция.VDM «От минимального ккак удалить скрытые строки о времени или
формата выражение «;;;».. сверху от горизонтальной который можно задействоватьА теперь попробуем разобраться, или форматирование), нажмите.B3 или диапазон, введите эта статья была в Excel в Excel –На вкладке: Меню максимальному» или «От
в дате, то выбирайте Чтобы показать спрятанноеГруппы будут удалены. панели соответственно. Для для отображения скрытых как можно отобразить кнопкуНапример, введите в поле, чтобы выделить эту имя и нажмите вам полезна. Просим. Затем, нажимаем кнопкуфункция «Специальная вставка» вHomeПравка максимального к минимальному».Excel без макроса пункт
содержимое, нужно вернутьДля того, чтобы скрыть того, чтобы показать при помощи сдвига содержимое элементов, скрытыхВыделитьСсылка ячейку, или клавишу ВВОД. вас уделить пару «Перейти». В появившемся Excel.(Главная) нажмите кнопкуПерейти Все строки, с. Как в таблице«Время» этим элементам исходный
support.office.com
Отображение скрытых ячеек в Microsoft Excel
временно ненужные данные, скрытые элементы, достаточно границ элементов. при помощи вышеперечисленныхвзначениеB1:B3Совет: секунд и сообщить, диалоговом окне, нажимаемИтак, у насFind & SelectВыделить пустыми ячейками переместились скрыть строки, смотритеили формат. часто применяют фильтрацию.
нажать на этотНа горизонтальной или вертикальной
Процедура включения отображения
методов.Перейти кB3, чтобы выделить диапазон Кроме того, можно щелкнуть помогла ли она кнопку «Выделить…». В есть таблица.(Найти и выделить)Только виденные ячейки вниз таблицы.
- в статье «Как«Дата»Выделяем ячейки, в которых Но, когда наступает значок.
- панели координат, в
- Чаще всего пользователи прячут
- всплывающего окна и
, чтобы выделить эту из трех ячеек. стрелку рядом с вам, с помощью окне «Выделение группы
Способ 1: размыкание границ
Как установить фильтр, смотрите и кликните поКопироватьОсталось их выделить и скрыть столбцы в, и т.п. Но находится скрытое содержимое. необходимость вернуться кТакже можно их отобразить, зависимости от того, столбцы и строки,
- выберите нужный вариант. ячейку, илиПримечание: полем кнопок внизу страницы. ячеек» ставим галочку в статье «ФильтрGo To SpecialВставить удалить удалить обычным Excel». для большинства типов Такие элементы можно работе с этой нажав на последнюю что скрыто, столбцы смыкая их границы.При работе с таблицамиB1:B3 В полеИмя Для удобства также у строки «только в Excel».(Выделить группу ячеек).mary_mary
- способом. какими способамиУ нас такая контента подойдет пункт
определить по тому, информацией, фильтр нужно цифру нумерации групп. или строки, курсором Если границы были
- Excel иногда нужно, чтобы выделить диапазонИмя, чтобы открыть список приводим ссылку на видимые ячейки». НажимаемМы убираем фильтромВыберите опцию: Спасибо данным способом быстро выделить строки, таблица.«Общий» что в самих снять. То есть, если
- с зажатой левой сдвинуты очень плотно, скрыть формулы или
из трех ячеек.невозможно удалить или именованных ячеек или оригинал (на английском «ОК». из списка всехVisible cells only получилось читайте в статье
Способ 2: Разгруппировка
Скроем строки 18 и. Делаем выбор и ячейках не отображаетсяЩелкаем по значку фильтра последней цифрой является кнопкой мыши выделяем то потом трудно временно ненужные данные,
- Чтобы выделить несколько изменить имена, определенные диапазонов, и выбрать языке) .Теперь на этой же Ивановых. Получилось так.(Только видимые ячейки)feecoos «Как выделить в 21. Получится так. жмем на кнопку никаких данных, но в столбце, по
«2» два смежных сектора, зацепиться за край, чтобы они не ячеек или диапазонов, для ячеек и в нем нужноеНезависимо от наличия определенных выделенной таблице правойВыделяем таблицу, нажимаем в и нажмите: А в Excel Excel ячейки, таблицу,Эти скрытые строки (18«OK» при их выделении значениям которого производилась, то жмите на между которыми спрятаны
- чтобы раздвинуть их мешали. Но рано укажите их в
- диапазонов. Имена можно имя. именованных ячеек или мышкой вызываем контекстное контекстном меню «Копировать».OK 2010г. как сделать др.» здесь. Получилось и 21) нам. содержимое будет показано фильтрация. Такие столбцы неё, если элементы. Кликаем по обратно. Выясним, как или поздно наступает поле удалять и изменятьЧтобы выбрать две или
диапазонов на листе,
Способ 3: снятие фильтра
меню. Нажимаем функцию Нажимаем левой мышкой. тоже самое!?!? так. нужно удалить.Как видим, после этого в строке формул.
- найти легко, так«3» выделению правой кнопкой это можно сделать момент, когда требуетсяСсылка только в диалоговом более ссылки на чтобы быстро найти «Копировать». В новом
- ячейку А9, выбираемExcel выделит видимые ячейки.anvgУдаляем столбец D.Выделяем ячейки нового скрытые значения сноваПосле того, как выделение как у них, то кликайте по
- мыши. В контекстном легко и быстро. скорректировать формулу, иличерез запятые. окне именованные ячейки или и выбрать отдельных месте (в нашем в контекстном меню Теперь нажмите сочетание: Вкладка «Главная», кнопкаКакими способами можно пустого столбца D. отображаются на листе.
Способ 4: форматирование
было произведено, кликаем обычная иконка фильтра данной цифре. Конкретное меню выбираем пунктВыделяем две смежные ячейки, информация, которая содержитсяПримечание:Диспетчер имен диапазоны, щелкните стрелку
- ячеек или диапазонов примере – это «значения».Ctrl+C «Найти и выделить», удалить пустые, скрытые Затем, чтобы выделить, Если вы посчитаете, по нему правой с перевернутым треугольником
- число зависит от«Показать» между которыми находятся в скрытых ячейках, В списке(вкладка рядом с полем вводя их имена
- ячейка А15) нажимаемНажимаем «ОК». Вуаля. Скопировалось, чтобы скопировать диапазон. пункт «Выделение группы строки, ячейки, читайте только, видимые строки что отображение информации кнопкой мыши. Запускается дополнена ещё пиктограммой
- того, сколько групп. скрытые столбцы или пользователю вдруг понадобилась.ПерейтиФормулыимя и ссылок на «Вставить». Всё. Получилось не только значениеВыберите ячейку ячеек…» в статье «Как (без скрытых), нажимаем некорректно, и, например, контекстное меню. Выбираем в виде лейки. вложено друг вСкрытые элементы будут тут строки. Переходим во Вот тогда иможно просмотреть все, группаи нажмите кнопку ячейки можно использовать так. видимых строк, ноA6Далее также
удалить пустые строки на функцию «Найти вместо даты видите пунктОткрывается меню фильтрации. Устанавливаем друга. Эти цифры же отображены на вкладку становится актуальным вопрос, именованные или неименованные
Определенные имена имя первого ссылку поле имени.
Как, не копируя, сразу и формат ячеек.и нажмитеfeecoos в Excel» тут. и выделить» и обычный набор цифр,«Формат ячеек…» галочки напротив тех расположены сверху от экране.«Главная» как отобразить скрытые ячейки или диапазоны,). Дополнительные сведения см. на ячейку илиПоле «Имя» расположено слеванапечатать данные фильтра в
Есть один нюанс
lumpics.ru
Как удалить скрытые строки в Excel.
Ctrl+V: Выделяю группу ячеек,В Excel есть выбираем функцию «Выделить то попробуйте ещё, щелкнув по нему. пунктов, где они горизонтальной панели координатЭти два варианта можно
. Кликаем по кнопке элементы. Давайте выясним,
которые ранее были в статье Определение
диапазон, который требуется от строки формул. Excel
- вставлять отфильтрованные, чтобы вставить диапазон. копирую, а пустые несколько способов разделить группу ячеек». раз поменять формат.Запускается окно форматирования. Производим отсутствуют. Именно эти или слева от
применять не только,«Формат» как можно решить выделены с помощью и использование имен выделить. Затем удерживаяКроме того, для выделения
, смотрите в статье данные не вРезультат: ячейки все равно данные одной ячейкиВ появившемся окне ставимУрок:
перемещение во вкладку строки не отображаются вертикальной.
если границы ячейки, которая расположена в данную задачу. команды
в формулах. клавишу CTRL, щелкните именованных и неименованных «Закладка листа Excel строки, где стоитУрок подготовлен для Вас вставляются! на несколько ячеек.
галочку у функцииКак изменить формат ячейки«Число» на листе. ЗатемПосле любого из данных были сдвинуты вручную, блоке инструментовСкачать последнюю версиюПерейти
На вкладке «
имена других ячеек ячеек и диапазонов «Разметка страницы»» здесь. фильтр. Например, у командой сайта office-guru.ruanvg
Как зазделить числа, «Только видимые ячейки». в Excel. Как видим, в кликаем по кнопке действий содержимое группы но также, если«Ячейки» Excel. Чтобы вернуться к
excel-office.ru
Копирование данных из таблицы без скрытых строк, помогите!!!!
Главная или диапазонов в можно использовать команду Какие способы есть нас в примереИсточник: http://www.excel-easy.com/examples/copy-visible-cells-only.html: feecoos коды на несколькоНажимаем «ОК». Получится такПри решении проблемы отображения
поле«OK»
раскроется. они были спрятаны. В появившемся списке
Сразу нужно сказать, что ячейке или диапазону,
» в группе
поле
Перейти
ещё выделить только
— не в
Перевел: Антон Андронов
Файл-пример, что есть, составных ячстей, смотрите – сплошной выделенный
скрытых элементов главная«Тип».Если же для вас
с помощью инструментов наводим курсор на выбор варианта включения которые были выделены «
имя
. видимые строки, особенно строки 1-7, аАвтор: Антон Андронов что получить
в статье «Разделить диапазон прервется у
задача состоит вотображается значение
planetaexcel.ru
После этого действия строки
Если некоторые ячейки, строки или столбцы на листе не отображаются, вы сможете скопировать все ячейки (или только видимые ячейки). По умолчанию Excel копирует не только видимые, но и скрытые или фильтрованные ячейки. Если же требуется скопировать только видимые ячейки, выполните действия, описанные ниже. Например, можно скопировать только сводные данные из структурированного листа.
Выполните указанные ниже действия.
Примечание:
При копировании значения последовательно вставляются в строки и столбцы. Если область вставки содержит скрытые строки или столбцы, возможно, потребуется отобразить их, чтобы увидеть все скопированные данные.
При копировании и вставке видимых ячеек в диапазоне данных, который содержит скрытые ячейки или к которому применен фильтр, можно заметить, что скрытые ячейки вставляются вместе с видимыми. К сожалению, вы не можете изменить этот параметр, когда вы копируете и вставляете диапазон ячеек в Excel в Интернете, так как Вставка только видимых ячеек недоступна.
Тем не менее, если отформатировать данные как таблицу и применить фильтр, можно скопировать и вставить только видимые ячейки.
Если не нужно форматировать данные как таблицу и установлено классическое приложение Excel, можно открыть книгу в нем, чтобы скопировать и вставить видимые ячейки. Для этого нажмите кнопку Открыть в Excel
и выполните действия, описанные в статье копирование и вставка только видимых ячеек .
Дополнительные сведения
Вы всегда можете задать вопрос специалисту Excel Tech Community , попросить помощи в сообществе Answers community , а также предложить новую функцию или улучшение на веб-сайте
Вставить только в видимые строки в
Excel
числа, формулы, текст можно несколькими способами. Когда нужно вставить числа, формулы, текст не во все строки таблицы, можно воспользоваться фильтром. Как установить фильтр и как фильтровать в Excel, смотрите в статье «Фильтр в Excel ». Но, чтобы вставить данные только в видимые ячейки, нужны свои способы, особенно, если много строк.
Первый способ —
обычный.
Возьмем такую таблицу. Таблица будет одна для всех примеров.
Уберем фильтром все цифры 2 из таблицы. В оставшиеся видимые ячейки поставим цифру 600. В ячейку В2 ставим число 600, затем копируем его вниз по столбцу (тянем за правый нижний угол ячейки В2). Значения скопировались только в видимые ячейки. Точно также можно вставлять и формулы. Мы в ячейке С2 пишем такую формулу. =А2*10
Получилось так.
Отменим фильтр. Получилась такая таблица.
Формула и цифры вставились только в отфильтрованные строки.
Второй способ.
Также отфильтруем данные. В первой ячейке пишем число, формулу, текст, т.д. Теперь, если строк тысячи, то выделяем ячейки так: нажимаем клавиши «Ctrl» + «Shift» + кнопку (стрелочку) вниз (или кнопку вверх, зависит от того, где хотим выделить ячейки – ниже или выше ячейки, в которой написали число).
Теперь,
или нажимаем сочетание клавиш «Ctrl» + G, или клавишу F5. Выйдет диалоговое окно «Переход». Нажимаем кнопку «Выделить…». И, в новом диалоговом окне «Выделение группы ячеек» ставим галочку у слов «Только видимые ячейки».
Нажимаем «ОК». Затем вставляем как обычно.
Ещё один способ вызвать диалоговое окно «Выделение группы ячеек».
На закладке «Главная» в разделе «Редактирование» нажимаем на кнопку «Найти и выделить». В появившемся списке нажимаем на функцию «Выделение группы ячеек».
Чтобы заполнить видимые ячейки в выделенных столбцах Excel
, нажимаем сочетание клавиш «Ctrl» + D. И все выделенные столбцы заполнятся данными или формулой, как в первой ячейке. В нашем примере, мы написали число800 в ячейку D2 столбца D.
Третий способ.
В новом столбце (в нашем примере – столбец Е) выделяем ячейки. Нажимаем клавишу F5. Выйдет диалоговое окно «Переход». Нажимаем кнопку «Выделить…». И, в новом диалоговом окне «Выделение группы ячеек», ставим галочку у слов «Только видимые ячейки». Нажимаем «ОК». Теперь, не отменяя выделения, в первой ячейке столбца (у нас – Е2) вводим формулу, цифру, т.д. Нажимаем сочетание клавиш «Ctrl» + «Enter».
Условное форматирование (5)
Списки и диапазоны (5)
Макросы(VBA процедуры) (63)
Разное (39)
Баги и глюки Excel (4)
Как вставить скопированные ячейки только в видимые/отфильтрованные ячейки
В общем-то смысл статьи уже, думаю, понятен из названия. Просто чуть-чуть расширю.
Ни для кого не секрет, что Excel позволяет выделить только видимые строки(например, если некоторые из них скрыты или применен фильтр)
.
Так вот, если скопировать таким образом только видимые ячейки, то скопируются они как положено. Но при попытке вставить скопированное в диапазон отфильтрованный(либо содержащий скрытые строки) — то результат вставки будет не совсем такой, как Вы ожидали. Данные будут вставлены даже в скрытые строки.
Копируем единый диапазон ячеек и вставляем только в видимые
Чтобы данные вставлялись только в видимые ячейки, можно применить такой макрос:
Option
Explicit
Dim
rCopyRange As
Range
«Этим макросом копируем данные
Sub
My_Copy()
If
Selection.Count > 1 Then
Set
rCopyRange = Selection.SpecialCells(xlVisible)
Else
: Set
rCopyRange = ActiveCell
End
If
End
Sub
«Этим макросом вставляем данные, начиная с выделенной ячейки
Sub
My_Paste()
If
rCopyRange Is
Nothing
Then
Exit
Sub
If
rCopyRange.Areas.Count > 1 Then
MsgBox «Вставляемый диапазон не должен содержать более одной области!»
, vbCritical, «Неверный диапазон»
: Exit
Sub
Dim
rCell As
Range, li As
Long
, le As
Long
, lCount As
Long
, iCol As
Integer
, iCalculation As
Integer
Application.ScreenUpdating = False
iCalculation = Application.Calculation: Application.Calculation = -4135
For
iCol = 1 To
rCopyRange.Columns.Count
li = 0: lCount = 0: le = iCol — 1
For
Each
rCell In
rCopyRange.Columns(iCol).Cells
Do
If
ActiveCell.Offset(li, le).EntireColumn.Hidden = False
And
_
ActiveCell.Offset(li, le).EntireRow.Hidden = False
Then
rCell.Copy ActiveCell.Offset(li, le): lCount = lCount + 1
End
If
li = li + 1
Loop
While
lCount >= rCell.Row — rCopyRange.Cells(1).Row
Next
rCell
Next
iCol
Application.ScreenUpdating = True
: Application.Calculation = iCalculation
End
Sub
Option Explicit
Dim rCopyRange As Range
«Этим макросом копируем данные
Sub My_Copy()
If Selection.Count > 1 Then
Set rCopyRange = Selection.SpecialCells(xlVisible)
Else: Set rCopyRange = ActiveCell
End If
End Sub
«Этим макросом вставляем данные, начиная с выделенной ячейки
Sub My_Paste()
If rCopyRange Is Nothing Then Exit Sub
If rCopyRange.Areas.Count > 1 Then MsgBox «Вставляемый диапазон не должен содержать более одной области!», vbCritical, «Неверный диапазон»: Exit Sub
Dim rCell As Range, li As Long, le As Long, lCount As Long, iCol As Integer, iCalculation As Integer
Application.ScreenUpdating = False
iCalculation = Application.Calculation: Application.Calculation = -4135
For iCol = 1 To rCopyRange.Columns.Count
li = 0: lCount = 0: le = iCol — 1
For Each rCell In rCopyRange.Columns(iCol).Cells
Do
If ActiveCell.Offset(li, le).EntireColumn.Hidden = False And _
ActiveCell.Offset(li, le).EntireRow.Hidden = False Then
rCell.Copy ActiveCell.Offset(li, le): lCount = lCount + 1
End If
li = li + 1
Loop While lCount >= rCell.Row — rCopyRange.Cells(1).Row
Next rCell
Next iCol
Application.ScreenUpdating = True: Application.Calculation = iCalculation
End Sub
Для полноты картины, данные макросы лучше назначить на горячие клавиши(в приведенных ниже кодах это делается автоматически при открытии книги с кодом). Для этого приведенные ниже коды необходимо просто скопировать в модуль ЭтаКнига
(ThisWorkbook)
:
Option Explicit
«Отменяем назначение горячих клавиш перед закрытием книги
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.OnKey «^q»: Application.OnKey «^w»
End Sub
«Назначаем горячие клавиши при открытии книги
Private Sub Workbook_Open()
Application.OnKey «^q», «My_Copy»: Application.OnKey «^w», «My_Paste»
End Sub
Теперь можно скопировать нужный диапазон нажатием клавиш Ctrl
+
q
, а вставить его в отфильтрованный — Ctrl
+
w
.
Скачать пример
(46,5 KiB, 9 622 скачиваний)
Копируем только видимые ячейки и вставляем только в видимые
По просьбам посетителей сайта решил доработать данную процедуру. Теперь возможно копировать любые диапазоны: со скрытыми строками, скрытыми столбцами и вставлять скопированные ячейки также в любые диапазоны: со скрытыми строками, скрытыми столбцами. Работает совершенно так же, как и предыдущий: нажатием клавиш Ctrl
+
q
копируем нужный диапазон(со скрытыми/отфильтрованными строками и столбцами или не скрытыми)
, а вставляем сочетанием клавиш Ctrl
+
w
. Вставка производится так же в скрытые/отфильтрованные строки и столбцы или без скрытых.
Если в копируемом диапазоне присутствуют формулы, то во избежание смещения ссылок можно копировать только значения ячеек — т.е. при вставке значений будут вставлены не формулы, а результат их вычисления. Или если необходимо сохранить форматы ячеек, в которые происходит вставка — будут скопированы и вставлены только значения ячеек. Для этого надо заменить строку в коде(в файле ниже):
rCell.Copy rResCell.Offset(lr, lc)
rCell.Copy rResCell.Offset(lr, lc)
на такую:
rResCell.Offset(lr, lc) = rCell.Value
rResCell.Offset(lr, lc) = rCell.Value
В файле ниже обе эти строки присутствуют, Вам надо лишь оставить ту, которая больше подходит под Ваши задачи.
Скачать пример:
(54,5 KiB, 7 928 скачиваний)
Так же см.:
[]
Статья помогла? Поделись ссылкой с друзьями!
Видеоуроки
{«Bottom bar»:{«textstyle»:»static»,»textpositionstatic»:»bottom»,»textautohide»:true,»textpositionmarginstatic»:0,»textpositiondynamic»:»bottomleft»,»textpositionmarginleft»:24,»textpositionmarginright»:24,»textpositionmargintop»:24,»textpositionmarginbottom»:24,»texteffect»:»slide»,»texteffecteasing»:»easeOutCubic»,»texteffectduration»:600,»texteffectslidedirection»:»left»,»texteffectslidedistance»:30,»texteffectdelay»:500,»texteffectseparate»:false,»texteffect1″:»slide»,»texteffectslidedirection1″:»right»,»texteffectslidedistance1″:120,»texteffecteasing1″:»easeOutCubic»,»texteffectduration1″:600,»texteffectdelay1″:1000,»texteffect2″:»slide»,»texteffectslidedirection2″:»right»,»texteffectslidedistance2″:120,»texteffecteasing2″:»easeOutCubic»,»texteffectduration2″:600,»texteffectdelay2″:1500,»textcss»:»display:block; padding:12px; text-align:left;»,»textbgcss»:»display:block; position:absolute; top:0px; left:0px; width:100%; height:100%; background-color:#333333; opacity:0.6; filter:alpha(opacity=60);»,»titlecss»:»display:block; position:relative; font:bold 14px «Lucida Sans Unicode»,»Lucida Grande»,sans-serif,Arial; color:#fff;»,»descriptioncss»:»display:block; position:relative; font:12px «Lucida Sans Unicode»,»Lucida Grande»,sans-serif,Arial; color:#fff; margin-top:8px;»,»buttoncss»:»display:block; position:relative; margin-top:8px;»,»texteffectresponsive»:true,»texteffectresponsivesize»:640,»titlecssresponsive»:»font-size:12px;»,»descriptioncssresponsive»:»display:none !important;»,»buttoncssresponsive»:»»,»addgooglefonts»:false,»googlefonts»:»»,»textleftrightpercentforstatic»:40}}
Отбор данных в Excel провели с помощью фильтра или сортировки. Теперь их нужно распечатать или перенести в другое место. Копирование в Excel
настроено так, что копируются и скрытые ячейки.
Рассмотрим два способа, к
ак копировать отфильтрованные строки в Excel.
Первый способ.
Есть замечательная функция в Excel – функция «Специальная вставка» в Excel.
Итак, у нас есть таблица.
Как установить фильтр, смотрите в статье »
Фильтр в Excel «.
Мы убираем фильтром из списка всех Ивановых. Получилось так.
Выделяем таблицу, нажимаем в контекстном меню «Копировать». Нажимаем левой мышкой ячейку А9, выбираем в контекстном меню «значения».
Нажимаем «ОК». Вуаля. Скопировалось не только значение видимых строк, но и формат ячеек.
Есть один нюанс
— вставлять отфильтрованные данные не в строки, где стоит фильтр. Например, у нас в примере — не в строки 1-7, а ниже или на другом листе, т.д. Если вставим в строки, где стоит фильтр, то вставятся отфильтрованные данные и в скрытые фильтром строки. Вообщем, получится каша. Второй способ.
Таблица та же. Выделить таблицу с отфильтрованными данными. На закладке «Главная» нажимаем в разделе «Редактирование» кнопку функции «Найти и выделить» в Excel
. Затем, нажимаем кнопку «Перейти». В появившемся диалоговом окне, нажимаем кнопку «Выделить…». В окне «Выделение группы ячеек» ставим галочку у строки «только видимые ячейки». Нажимаем «ОК».Теперь на этой же выделенной таблице правой мышкой вызываем контекстное меню. Нажимаем функцию «Копировать». В новом месте (в нашем примере – это ячейка А15) нажимаем «Вставить». Всё. Получилось так.
Как, не копируя, сразу напечатать данные фильтра в Excel
, смотрите в статье «Закладка листа Excel «Разметка страницы»»
Reminds me of some code I wrote a while ago. It’s not tailored to do exactly what you’re asking (directly copying or acting on colors), but it’s a very handy tool for the general case of handling filter row gaps.
What it does: Populates a field named «F» in the first ListObject (Table) in a sheet with a value 0 if the row is hidden, or 1 if the row is visible. If no column/field «F» exists, one gets created and added at the right end of the table. Then It clears all sheet filters, sorts column F so all visible rows come to the top, then re-filters. The result is that you get all your filtered values together without gaps in between. A secondary effect is that you can save a complex combination of filters by renaming the «F» column/field.
Disclaimer: I wrote this code a while ago and I’m sure there’s room for improvement. It’s served my purpose though, so I just haven’t taken the time. let me know if you come up with anything better.
Sub Filter_By_Sorting()
Application.ScreenUpdating = False
Dim r As Double
Dim C As Double
Dim A As Worksheet
Set A = ActiveSheet
r = A.ListObjects(1).ListRows(1).Range.Row
On Error Resume Next
C = A.Range(ActiveSheet.ListObjects(1).Name & "[F]").Column
If Err <> 0 Then
C = A.ListObjects(1).ListColumns(A.ListObjects(1).ListColumns.Count).Range.Column + 1
Columns(C).Select
Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
Cells(A.ListObjects(1).ListRows(1).Range.Row - 1, C) = "F"
End If
On Error GoTo 0
Dim end_r As Double
end_r = A.ListObjects(1).ListRows.Count + A.ListObjects(1).ListRows(1).Range.Row - 1
Dim e() As Double
ReDim e(r To end_r, 0)
Do Until r > end_r
If A.Rows(r).EntireRow.Hidden = False Then
e(r, 0) = 1
Else
e(r, 0) = 0
End If
r = r + 1
Loop
A.Cells(A.ListObjects(1).ListRows(1).Range.Row, _
A.ListObjects(1).ListColumns(1).Range.Column).Select
'Application.ScreenUpdating = True
On Error Resume Next
ActiveSheet.ShowAllData
If Err <> 0 Then
MsgBox "No Filter Detected, Macro Aborted"
Exit Sub
End If
On Error GoTo 0
'Application.ScreenUpdating = False
Range(Cells(A.ListObjects(1).ListRows(1).Range.Row, C), Cells(end_r, C)) = e
A.ListObjects.Item(1).Sort.SortFields.Clear
A.ListObjects.Item(1).Sort.SortFields. _
Add Key:=Range(A.ListObjects.Item(1).Name & "[F]"), SortOn:=xlSortOnValues, Order:=xlDescending _
, DataOption:=xlSortNormal
With A.ListObjects.Item(1).Sort
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
'A.Range(ActiveSheet.ListObjects(1).Name & "[F]").AutoFilter Criteria1:="1"
A.ListObjects(1).Range.AutoFilter Field:=C, Criteria1:="1"
End Sub