Вставка в отфильтрованные строки
Весьма распространенная ситуация, вопрос про которую мне задают почти на каждом тренинге. Есть таблица, в которой Фильтром (Данные — Фильтр) отобраны несколько строк. Задача — вставить какие-либо нужные нам значения именно в видимые отфильтрованные строки, пропуская при этом скрытые. Обычное копирование-вставка при этом не сработает, т.к. данные вставятся не только в видимые, но и в скрытые ячейки. Давайте посмотрим, как можно обойти эту проблему.
Способ 1. Вставка одинаковых значений или формул
Если вам нужно вставить одни и те же значения во все отфильтрованные строки списка, то все просто. Предположим, что у нас есть вот такой список сделок:
… и в нем нужно поставить фиксированную скидку в 1000 рублей каждому «Ашану».
Фильтруем наш список Автофильтром, оставляя на экране только «Ашаны». Вводим нужное значение в первую ячейку и протягиваем (копируем за правый нижний угол ячейки) вниз:
Умный Excel в данном случае понимает, что вы хотите ввести значения именно в отфильтрованные ячейки и делает то, что нужно:
Такой способ подойдет и для ввода значений и для ввода формул. Например, если скидка для «Ашанов» не фиксированная, а составляет 10% от суммы сделки, то в первую отфильтрованную строку можно ввести не константу (1000), а формулу (=C2*10%) и также скопировать вниз.
Способ 2. Макрос вставки любых значений
Другое дело, если вам необходимо вставить в отфильтрованные ячейки не одинаковые значения или формулы, а разные, да еще и брать их из другого диапазона. Тогда придется использовать несложный макрос. Нажмите сочетание клавиш Alt+F11, в открывшемся окне Visual Basic вставьте новый пустой модуль через меню Insert — Module и скопируйте туда этот код:
Sub PasteToVisible() Dim copyrng As Range, pasterng As Range Dim cell As Range, i As Long 'запрашиваем у пользователя по очереди диапазоны копирования и вставки Set copyrng = Application.InputBox("Диапазон копирования", "Запрос", Type:=8) Set pasterng = Application.InputBox("Диапазон вставки", "Запрос", Type:=8) 'проверяем, чтобы они были одинакового размера If pasterng.SpecialCells(xlCellTypeVisible).Cells.Count <> copyrng.Cells.Count Then MsgBox "Диапазоны копирования и вставки разного размера!",vbCritical Exit Sub End If 'переносим данные из одного диапазона в другой только в видимые ячейки i = 1 For Each cell In pasterng If cell.EntireRow.Hidden = False Then cell.Value = copyrng.Cells(i).Value i = i + 1 End If Next cell End Sub
Как легко сообразить, макрос запрашивает у пользователя по очереди два диапазона — копирования и вставки. Затем проверяет, чтобы их размеры совпадали, т.к. разница в размерностях вызовет впоследствии ошибку при вставке. Затем макрос перебирает все ячейки в диапазоне вставки и переносит туда данные из диапазона копирования, если строка видима (т.е. не отфильтрована).
Ссылки по теме
- Что такое макросы, как их использовать, куда вставлять код макроса на Visual Basic
Вставить в видимые строки в Excel.
Смотрите также: Собственно тема: скрываю происходит. по умолчанию, т.е.RMMMM у меня таких в чем причина. становлюсь в первую pasterng = Application.InputBox(«Диапазон все отфильтрованные строки протягивании все ок) — далее добавить «Запрос», Type:=8) Set же значения воГлавная формулу, цифру, т.д. написали число).Вставить только в видимые строки (или пользуюсьDemetry
с копированием выделенных: Собственно суть вопроса таблиц для обработки
оставил в покое ячейку столбца, в вставки», «Запрос», Type:=8)
списка, то всеPelena столбец, НО тогда pasterng = Application.InputBox(«Диапазон все отфильтрованные строки > Нажимаем сочетание клавишТеперь, или нажимаем строки в фильтром, что чаще).: Надо выделить нужные ячеек проблем нет, в названии. Подробнее под сотню и макрос, начал делать который необходимо вставить ‘проверяем, чтобы они просто. Предположим, что
: А у Вас
нарушается последовательность списка вставки», «Запрос», Type:=8)
списка, то всеНайти и выделить «Ctrl» + «Enter».
сочетание клавиш «Ctrl»
Excel Есть диапазон ячеек ячейки, потом Ctrl-G скопированное прекрасно вставляется на всякий случай: в каждой строк способом, который описал данные, то вставляются были одинакового размера у нас есть не получилось? ЗАГОЛОВКИ ПОДПУНКТЫ с ‘проверяем, чтобы они просто. Предположим, что, а затем выберитеВ Excel ячейки
+ G, иличисла, формулы, текст я хочу чтобы — Выделить… -Только через Ctrl-V, но Есть таблица, применяю под пятьдесят тысяч) в начале темы, скопированные данные во If pasterng.SpecialCells(xlCellTypeVisible).Cells.Count <> вот такой списокВыкладывайте файл текстом описанием и
были одинакового размера у нас есть пункт можно выделить цветом клавишу F5. Выйдет можно несколькими способами. копия вставилась в видимые ячейки. Потом затирает ячейки внизу к ней фильтр,Юрий М тоже выдает ошибку. все ячейки, включая copyrng.Cells.Count Then MsgBox сделок:Гость т.п. НУЖНО СОХРАНИТЬ If pasterng.SpecialCells(xlCellTypeVisible).Cells.Count <> вот такой списокВыделение группы ячеек по поределенному условию, диалоговое окно «Переход». Когда нужно вставить видимые ячейки - обычным копипастом. (как я описал выделяю первую отфильтрованную: EgorAg, свои сообщения на разных компьютерах скрытые, если же «Диапазоны копирования и… и в нем нужно поставить: вот сам файлик ЦЕЛОСТНОСТЬ!!!!) ХЕЛП!!!!!!
copyrng.Cells.Count Then MsgBox
сделок:. которое мы зададим Нажимаем кнопку «Выделить…». числа, формулы, текст но вставка происходитАлексей пинчук в первом посте). строку, удерживая Shift можно редактировать. В тоже пробовал уже) выделяю весь диапазон вставки разного размера!»,vbCritical фиксированную скидку вhttp://rghost.ru/38132320Serge_007 «Диапазоны копирования и… и в нем нужно поставитьВыберите параметр условным форматированием и
И, в новом не во все во все строки: > На самом Не работает именно выделяю последнюю отфильтрованную том числе, менятьтак что, если ячеек, в которые Exit Sub End
excel-office.ru
Копирование только видимых ячеек
1000 рублей каждомув лист «все: В Excel 2007/2010 вставки разного размера!»,vbCritical фиксированную скидку втолько видимые ячейки формулой. Смотрите, как диалоговом окне «Выделение строки таблицы, можно подряд, в т.ч. деле я применил Insert (по правой строку, жму Ctrl+C, файл. В данном кому не сложно, хочу вставить эти If ‘переносим данные «Ашану». районы» в столбец по умолчанию данные Exit Sub End 1000 рублей каждому
и нажмите кнопку это сделать, в группы ячеек» ставим воспользоваться фильтром. Как и скрытые (отфильтрованные). не фильтр к кнопке мыши нет в местах пропущенных случае следовало ПОМЕНЯТЬ помогите понять в данные, то выдает из одного диапазонаФильтруем наш список Автофильтром, «Т» вставить значения вставляются только в If ‘переносим данные «Ашану».ОК статье «Закрасить ячейку галочку у слов
установить фильтр и
-
Как быть? диапазону, а скрыл опции Insert Copied строк бегут мураши. файл в старом
чем ошибаюсь. ошибку: «данная команда в другой только оставляя на экране
-
из листа «ИЗНОС» отфильтрованные строки, что из одного диапазонаФильтруем наш список Автофильтром,. по условию в «Только видимые ячейки». как фильтровать в
-
Владимир некоторые строки Cells). Excel английский. Перехожу на другую сообщении и проинформировать
-
Z не применима для в видимые ячейки только «Ашаны». Вводим
-
из столбца «N» бы вставить во в другой только оставляя на экранеЩелкните Excel формулой».
Нажимаем «ОК». Затем вставляем Excel, смотрите в: Вы скопируйте отфильтрованныеЭто и есть Если выделять и закладку, жму правую об этом. Зачем: В январе, однако, несвязанных диапазонов». i = 1
нужное значение вкак то так все необходимо воспользоваться в видимые ячейки только «Ашаны». ВводимКопироватьПримечание: как обычно. статье «Фильтр в строки и вставьте
support.office.com
Вставка в отфильтрованные строки
ответ на вопрос. копировать подряд идущие кнопку мыши на на форуме хранить лишь одна строка…kuklp For Each cell первую ячейку и вот!!! спецвставкой и поставить i = 1 нужное значение в(или нажмите клавишиМы стараемся какЕщё один способ Excel». Но, чтобы их в другой Высота строки (а строки, то Insert той строке куда неправильный файл?Никаких заморочек нет
Способ 1. Вставка одинаковых значений или формул
: Не раз поднималась In pasterng If протягиваем (копируем заPelena галку на «Пропускать For Each cell первую ячейку и CTRL+C). можно оперативнее обеспечивать
вызвать диалоговое окно вставить данные только лист. Думаю, проблема скрытие строки —
работает без проблем. нужно вставить скопированныеJayBhagavan — с вашими тема поиска по cell.EntireRow.Hidden = False правый нижний угол: Файл пока не
пустые ячейки». In pasterng If протягиваем (копируем заВыделите левую верхнюю ячейку вас актуальными справочными «Выделение группы ячеек». в видимые ячейки,
исчезнет. просто установка еёРешение есть с строки — но: Выделили что копировать данными — и сайту. Из-за этого Then cell.Value = ячейки) вниз: смотрела, но дляГость cell.EntireRow.Hidden = False
Способ 2. Макрос вставки любых значений
правый нижний угол области вставки и материалами на вашем На закладке «Главная» нужны свои способы,Dyka высоты в 0) промежуточным копированием нужных вместо Insert Copied (один столбец ячеек). копируется, и вставляется. модеры тиранят нерадивых copyrng.Cells(i).Value i =Умный Excel в данном копировать/вставить этот способ: Стоит 2007 …в Then cell.Value = ячейки) вниз:
нажмите кнопку языке. Эта страница в разделе «Редактирование» особенно, если много: Нет, так не будет копироваться, только строк на пустой Cells вижу просто По запросу выделилиИ давайте уточним: гостей за бестолковые i + 1 случае понимает, что действительно не пойдет. том то и copyrng.Cells(i).Value i =Умный Excel в данномВставить переведена автоматически, поэтому нажимаем на кнопку строк. пойдет. Задача вставить если копируется вся лист и последующим Insert, который вставляет куда копировать (один копировать-вставить или же названия тем. Я End If Next вы хотите ввестиЭти две таблицы дело что по i + 1
случае понимает, что(или нажмите клавиши ее текст может «Найти и выделить».Первый способ - данные в существующую строка. То есть Insert на нужную пустую строку. Если столбец ячеек). Ок.Скрытый вырезать-вставить? вот ввел в cell End Sub значения именно в ведь как-то связаны умолчанию вставляет значения End If Next
planetaexcel.ru
Таблица Фильтрация ВСТАВКА -СРОЧНО НУЖНА ПОМОЩЬ!!!
вы хотите ввести Ctrl + V). содержать неточности и
В появившемся спискеобычный талицу с отфильтрованными надо выделить не закладку, но это
сделать Ctrl-V или текст Option ExplicitНе пробовали элементарными поиск «Вставить значенияКак легко сообразить, макрос отфильтрованные ячейки и между собой, может по порядку во cell End Sub значения именно вСовет: грамматические ошибки. Для
нажимаем на функцию. строками.
конкретные ячейки, а лишний шаг. Есть Paste Special, то Sub jjj_areas_copy() Dim горячими клавишами воспользоваться, в отфильтрованные ячейки» запрашивает у пользователя делает то, что формулой попробовать найти все скрытые строки
Как легко сообразить, макрос отфильтрованные ячейки и Чтобы скопировать выделенный фрагмент нас важно, чтобы «Выделение группы ячеек».Возьмем такую таблицу.Dyka строки полностью. ли прямой путь строки вставляются, но
rngSrc As Range да и оформить и сразу по очереди два нужно: нужное значение? в столбце…а не запрашивает у пользователя делает то, что на другой лист эта статья была Чтобы Таблица будет одна
: С макросами плохоAleksFin с непосредственным Insert затирают строки расположенные
Dim rngTrgt As данные таблицей/списком?!
EgorAg диапазона — копированияТакой способ подойдет и
Tviga в нужные отфильтрованные, по очереди два нужно:
или в другую вам полезна. Просимзаполнить видимые ячейки в для всех примеров. знаком, но не: Здравствуйте! куда нужно? ниже. Явно должно Range Dim iEgorAg: спасибо за совет. и вставки. Затем для ввода значений
: вобщем так. побывал и спецвставкой диапазона — копированияТакой способ подойдет и книгу, щелкните вкладку
вас уделить пару выделенных столбцах ExcelУберем фильтром все цифры подскажете основной ходПомогите пжл, в_Boroda_
быть просто, но As Long, j: извиняюсь, я там
видел. не работает.
проверяет, чтобы их и для ввода
не совсем понятно
с галкой «Пропускать и вставки. Затем для ввода значений другого листа или секунд и сообщить,
, нажимаем сочетание клавиш 2 из таблицы.
мыслей? Метод Paste таблице есть группированные: А, да это что то туплю. As Long If
лишний столбец с пробовал уже много размеры совпадали, т.к. формул. Например, если как завязаны между
пустые ячейки». НЕ проверяет, чтобы их
и для ввода выберите другую книгу помогла ли она «Ctrl» + D. В оставшиеся видимые использовать по 1 строки с данными, скорее всего у Помогите пожалуйста. TypeName(Selection) = «Range» названием «месяц» добавил, раз ранее. дает
разница в размерностях
скидка для «Ашанов»
excelworld.ru
Вставка в отфильтрованные строки
собой листы. Нет ВЫХОДИТ!!!! размеры совпадали, т.к. формул. Например, если и выделите левую вам, с помощью И все выделенные ячейки поставим цифру ячейке с провыеркой хочу скопировать только Вас книги открытыkrosav4ig Then Set rngSrc где месяца перечислены ошибку. вызовет впоследствии ошибку не фиксированная, а никаких одинаковых данных.Гость разница в размерностях скидка для «Ашанов» верхнюю ячейку области
Способ 1. Вставка одинаковых значений или формул
кнопок внизу страницы. столбцы заполнятся данными 600. В ячейку на скрытость строк? итоги по сгруппированным в разных Excelях.: Попробуйте перед копированием = Selection.Resize(, 1).SpecialCells(xlCellTypeVisible) (сейчас файл подправлен).
по этой причине при вставке. Затем составляет 10% от Куча повторяющихся значений.
: Короче никто не вызовет впоследствии ошибку не фиксированная, а вставки. Для удобства также или формулой, как В2 ставим число или как то
строкам и вставить Попробуйте закрыть вторую выделить только видимые On Error Resume а так я и создал тему макрос перебирает все
суммы сделки, то Кодов нет. Из знает и никто при вставке. Затем составляет 10% отПримечание: приводим ссылку на в первой ячейке. 600, затем копируем по другому? их рядом, но книгу и открыть
Способ 2. Макрос вставки любых значений
ячейки (F5>Alt+ВЫ>enter) Next Set rngTrgt фильтрую по столбцу еще раз. более ячейки в диапазоне в первую отфильтрованную строку того что было не поможет?!?!? макрос перебирает все суммы сделки, то При копировании значения последовательно оригинал (на английском В нашем примере, его вниз поTimSha вставить в те ее из первойRMMMM
= Application.InputBox(«», , «вид затрат», выбираю того, даже обращался вставки и переносит можно ввести не предложено могу толькоSerge_007 ячейки в диапазоне в первую отфильтрованную строку вставляются в строки языке) . мы написали число800 столбцу (тянем за: А в чем же ячейке по — Файл -: krosav4ig, по F5 , , , «себестоимость», и у к человеку, который туда данные из константу (1000), а так. Вставить пару: Я уже ответил. вставки и переносит можно ввести не и столбцы. ЕслиЕсли некоторые ячеек, строк в ячейку D2 правый нижний угол «изыск» такого подхода? строкам с которых Открыть
у меня Go , , 8).Resize(, меня в столбце отсылал с этого диапазона копирования, если формулу (=C2*10%) и также скопировать вниз. столбцов. И формулу.Почему у Вас туда данные из константу (1000), а область вставки содержит и столбцов на столбца D. Немного ячейки В2). Значения Может по-другому следует и скопировал.RMMMM
planetaexcel.ru
Вставить скопированные значения в отфильтрованные ячейки
To открывается. Excel 1).SpecialCells(xlCellTypeVisible) If Not «февраль» заполнены 2
форума кого-то ранее строка видима (т.е.Другое дело, если вам А больше не не так - диапазона копирования, если формулу (=C2*10%) и также скопировать вниз.
скрытые строки или листе не отображается, не по теме, скопировались только в взглянуть на проблемуПо факту получается,: 2010. А что rngTrgt Is Nothing
строки: №2 и к подобному макросу. не отфильтрована). необходимо вставить в знаю как. надо разбираться локально строка видима (т.е.Другое дело, если вам столбцы, возможно, потребуется у вас есть но хочется сказать видимые ячейки. Точно и найти другое копирую выделением при_Boroda_ такое Alt-ВЫ? Then If rngSrc.Cells.Count №7. я их но в ответEgorAg отфильтрованные ячейки неВроде все сошлось.
Pelena не отфильтрована). необходимо вставить в отобразить их, чтобы возможность копирования всех здесь. Сочетание клавиш также можно вставлять решение? сгруппированном состоянии ячейки,, действительно были открытыPelena
= rngTrgt.Cells.Count And копирую и вставляю
— «тишина»!: Добрый день, уважаемые одинаковые значения илиhttp://zalil.ru/33260588
: Я так понимаюГость отфильтрованные ячейки не увидеть все скопированные ячеек, или только «Ctrl» + R и формулы. МыGuest потом вставляю в две книги, правда
: F5 — Выделить rngSrc.Areas.Count = rngTrgt.Areas.Count в столбец «январь».
Z форумчане! формулы, а разные,Весьма распространенная ситуация, вопрос новые данные вставляются: Уважаемые знающие люди…помогите
одинаковые значения или данные.
видимые ячейки. По – копирует данные в ячейке С2: Основной ход мысли нужные мне, и в одном экселе. — Только видимые Then For j копирую выделив 2: Значит вы… ошибаетесьТема эта поднималась да еще и про которую мне с помощью заполнения? плиз…
формулы, а разные,Весьма распространенная ситуация, вопрос умолчанию Excel копирует по строке Excel пишем такую формулу. — если видима эксель вставляет их
На всякий случай ячейки — ОК = 1 To строчки и вставляю
где-то, в чем-то… уже не раз, брать их из другого
задают почти наТогда нужно сделатьСуть есть список да еще и
про которую мне скрытых или отфильтрованных (в нашем примере
=А2*10 или если высота подряд, а не все закрыл, открыл
— дальше Копировать/Вставить rngTrgt.Areas.Count If rngSrc.Areas(j).Rows.Count выделив в столбцеМо быть - но на практике диапазона. Тогда придется использовать каждом тренинге. Есть так: отфильтровать столбец, из около 2000 брать их из другого задают почти на ячейки не только – строка 2,Получилось так. строки не = в нужные мне только одну нужную_Boroda_ <> rngTrgt.Areas(j).Rows.Count Or январь 2 строчки. «чтобы их размеры реализовать советы не несложный макрос. Нажмите таблица, в которой выделить диапазон ячеек, строк с огловлениями диапазона. Тогда придется использовать
каждом тренинге. Есть видимые ячейки. Если копировали число 800Отменим фильтр. Получилась такая 0 то вставалять. строки. книгу — все: Еще можно Альт+ТочкасЗапятой
_ rngSrc.Areas(j).Columns.Count <> соответственно, если делаю совпадали, т.к. разница получается. Поэтому обращаюсь сочетание клавиш Фильтром ( которые хотим заполнить, пустыми строками … несложный макрос. Нажмите таблица, в которой
это не является из ячейки D2). таблица.DykaPelena то же самое,На разных компьютерах rngTrgt.Areas(j).Columns.Count Then Exit это без применения в размерностях вызовет к вам за
Alt+F11Данные — Фильтр затем в диалоговом и 15 столбцами сочетание клавиш Фильтром ( вас не устраивают, Получилось так.Формула и цифры вставились: The_Prist большущее спасибо!!!: Возможно, это ищете копируются выделенные строки по-разному — иногда Sub Next j макроса, то вставляется впоследствии ошибку при помощью., в открывшемся окне) отобраны несколько строк. окне ВЫДЕЛЕНИЕ ГРУППЫфильтрую по допустимAlt+F11Данные — Фильтр выполните действия, описанныеТретий способ. только в отфильтрованныеочень пригодиться в Вставка в отфильтрованные без проблем, Paste работает Альт+Ж, иногда For j = без учета «фильтрации», вставке.»Проблема тривиальная: есть Visual Basic вставьте Задача — вставить ЯЧЕЕК поставить переключатель 5 столбцу, получаю, в открывшемся окне) отобраны несколько строк. в этой статье,В новом столбце
строки. работе эта вещь!!! строки без проблем, Insert
Альт+Контрл+4 1 To rngTrgt.Areas.Count а если сps Правила пп
массив, состоящий из
planetaexcel.ru
Как вставить скопированные по фильтру строки? (Формулы/Formulas)
новый пустой модуль какие-либо нужные нам ТОЛЬКО ВИДИМЫЕ ЯЧЕЙКИ, список из 560 Visual Basic вставьте Задача — вставить чтобы скопировать только (в нашем примереВторой способ.Правда горячие клавишиили ещё просто вставляет пустуюkrosav4ig For i = макросом, то выдает 2.2, 2.3. нескольких столбцов, произвожу через меню значения именно в ввести нужное значение строк… в соседний новый пустой модуль какие-либо нужные нам видимые ячейки. Например – столбец Е)Также отфильтруем данные. вроде как неhttp://www.excel-vba.ru/chto-um….achejki строку, Insert Copied: Вы нажмите F5
1 To rngTrgt.Areas(j).Cells.Count ошибку.EgorAg фильтрацию и выделенные
Insert — Module видимые отфильтрованные строки, и нажать +. столбец ПЫТАЮСЬ вставить через меню значения именно в
вы можете скопировать выделяем ячейки. Нажимаем В первой ячейке работают (по ctrl+wMichael_S
Cells отсутствует. Возможно и посмотрите, какие
rngSrc.Areas(j).Cells(i).Copy rngTrgt.Areas(j).Cells(i) Nextгорячими клавишами пользовался,: для примера, сделал данные из одного
и скопируйте туда пропуская при этом В этом случае новые данные …Insert — Module видимые отфильтрованные строки, только итоговых данных клавишу F5. Выйдет
пишем число, формулу, документ закрывается), но: По шагам, на данный функционал просто
буковки Alt при i Next j тоже нашел на таблицу, где нужно столбца необходимо вставить этот код: скрытые. Обычное копирование-вставка заполнятся только видимые и получается чтои скопируйте туда пропуская при этом из структурированных листа. диалоговое окно «Переход». текст, т.д. Теперь, я макросы на вашем примере: не предусмотрен в нажатом подчеркнуты, вот End If End просторах инета, но скопировать 2 строки
в другой столбец,Sub PasteToVisible() Dim при этом не ячейки. вставляются данные во этот код: скрытые. Обычное копирование-вставкаСделайте следующее: Нажимаем кнопку «Выделить…». если строк тысячи,
форму-кнопку повесил ивыделяем ячейки в столбце экселе, хотя конечно их и нужно If End If результата нет, сейчас из февраля и синхронно, строка в copyrng As Range, сработает, т.к. данные вставятся
Гость все по порядкуSub PasteToVisible() Dim при этом неВыделите ячейки, которые нужно И, в новом то выделяем ячейки тогда все получилось. Е:Е это как то жать при зажатом End Sub уже не помню, вставить в 2 строку. pasterng As Range не только в: Как вариант могу скрытие ячейки, а copyrng As Range, сработает, т.к. данные вставятся скопировать подробнее, читайте
excelworld.ru
Excel: Когда копирую отфильтрованные ячейки и вставляю их на другой лист, то вставляются также и скрытые фильтром ячейки
диалоговом окне «Выделение
так: нажимаем клавишиDykaЖмем Ctrl+G
странно… AltEgorAg какую именно давал строки января, вроде
Пытался реализовать это Dim cell As видимые, но и скинуть вам файл, не в те pasterng As Range
не только в статью выберите ячеек, группы ячеек», ставим «Ctrl» + «Shift»: Только, наверное, неВыделить
ячейки. Как исправить это?В: Юрий М, извиняюсь. ошибку, но не здесь уже сложно путем выделения отфильтрованных Range, i As в скрытые ячейки. попробуете, если все которые я фильтранул…… Dim cell As видимые, но и
Копирование и вставка через не затрагивая заполненные строки (Формулы/Formulas)
диапазонов, строк и галочку у слов
+ кнопку (стрелочку) обязательно делать проверкуТолько видимыеМне надо чтобыыделить > Видим я новичок на вставлял. в такой таблице ячеек, последующего вызова Long ‘запрашиваем у Давайте посмотрим, как
получится буду благодарен…ВОПРОС как вставить Range, i As в скрытые ячейки. столбцов на листе. «Только видимые ячейки». вниз (или кнопку на количество выделенныхв строке формул =C11
не копировались ячейкиы форуме. сейчас подправлю.с переоформлением таблицы
в подсчетах ошибиться,
меню «выделение группы
пользователя по очереди можно обойти этуГость
- в те которые Long ‘запрашиваем у
- Давайте посмотрим, как
- Совет:
- Нажимаем «ОК». Теперь,
- вверх, зависит от
- строк на втором
Ctrl+Enter
скрытые фильтром.е
excelworld.ru
Как при вставке ячеек игнорировать скрытые строки?
EgorAg сложно. просто я и мне выдает ячеек» и выбора диапазоны копирования и проблему.: новые данные вставляются отфильтрованы!!!! пользователя по очереди можно обойти эту Чтобы отменить выделение ячеек, не отменяя выделения,
того, где хотим
шаге, вероятно, чтобыВсеПомню раньше, когдаRMMMM: JayBhagavan, большое спасибо. упростил ее по
ошибку: диапазоны копирования «выделить только выбранные вставки Set copyrngЕсли вам нужно вставить не с помощью(можно скопировать отфильтрофанные
диапазоны копирования и проблему. щелкните любую ячейку в первой ячейке выделить ячейки – этого избежать надоAleksFin то, получалось нормально: Не получается. По все работает очень
максиму, чтобы ошибку и вставки разного ячейки», соответственно их = Application.InputBox(«Диапазон копирования», одни и те заполнения, а копируются данные на новый
вставки Set copyrngЕсли вам нужно вставить на листе. столбца (у нас ниже или выше сделать подсчет скопированных
: Отлично, спасибо копировать, но не
моему Excel 2010 прекрасно.
найти. а так размера. не пойму копирования и если «Запрос», Type:=8) Set же значения во с нового листа…(при лист «вставить значения»
= Application.InputBox(«Диапазон копирования», одни и теЩелкните – Е2) вводим ячейки, в которой ячеек.Dyka знаю почему так выделяет видимые ячейки
planetaexcel.ru
Очень Вам благодарен.
Если для фильтрации данных требуются сложные условия (например, Тип = «Фрукты» ИЛИ Продавец = «Егоров»), можно использовать диалоговое окно Расширенный фильтр.
Чтобы открыть диалоговое окно Расширенный фильтр, щелкните Данные > Дополнительно.
Расширенный фильтр |
Пример |
---|---|
Обзор расширенных условий фильтра |
|
Несколько условий, один столбец, любое из условий истинно |
Продавец = «Егоров» ИЛИ Продавец = «Грачев» |
Несколько условий, несколько столбцов, все условия истинны |
Тип = «Фрукты» И Продажи > 1000 |
Несколько условий, несколько столбцов, любое из условий истинно |
Тип = «Фрукты» ИЛИ Продавец = «Грачев» |
Несколько наборов условий, один столбец во всех наборах |
(Продажи > 6000 И Продажи < 6500) ИЛИ (Продажи < 500) |
Несколько наборов условий, несколько столбцов в каждом наборе |
(Продавец = «Егоров» И Продажи >3000) ИЛИ |
Условия с подстановочными знаками |
Продавец = имя со второй буквой «г» |
Обзор расширенных условий фильтра
Действие команды Дополнительно отличается от действия команды Фильтр в некоторых важных аспектах.
-
Она отображает диалоговое окно Расширенный фильтр, а не меню «Автофильтр».
-
Вы вводите расширенные условия в отдельном диапазоне условий на листе над диапазоном ячеек или таблицей, которую нужно отфильтровать. В качестве источника расширенных условий в Microsoft Office Excel используется отдельный диапазон условий в диалоговом окне Расширенный фильтр.
Образец данных
Этот пример данных используется для всех процедур, описанных в этой статье.
Эти данные включают четыре пустые строки над диапазоном списка, которые будут использоваться как диапазон условий (A1:C4) и диапазон списка (A6:C10). Диапазон условий содержит названия столбцов и по крайней мере одну пустую строку между значениями условий и диапазоном списка.
Для работы с этими данными выделите их в следующей таблице, скопируйте, а затем вставьте в ячейку A1 на новом листе Excel.
Тип |
Продавец |
Продажи |
Тип |
Продавец |
Продажи |
Напитки |
Шашков |
5 122 ₽ |
Мясо |
Егоров |
450 ₽ |
фрукты |
Грачев |
6328 ₽ |
Фрукты |
Егоров |
6544 ₽ |
Операторы сравнения
Операторы сравнения используются для сравнения двух значений. Результатом сравнения является логическое значение: ИСТИНА либо ЛОЖЬ.
Оператор сравнения |
Значение |
Пример |
---|---|---|
= (знак равенства) |
Равно |
A1=B1 |
> (знак «больше») |
Больше |
A1>B1 |
< (знак «меньше») |
Меньше |
A1<B1 |
>= (знак «больше или равно») |
Больше или равно |
A1>=B1 |
<= (знак «меньше или равно») |
Меньше или равно |
A1<=B1 |
<> (знак «не равно») |
Не равно |
A1<>B1 |
Использование знака равенства для ввода текста или значения
При вводе текста или значения в ячейке знак равенства (=) используется для обозначения формулы, поэтому Excel вычисляет то, что вы вводите. Однако при этом вы можете получить неожиданные результаты фильтрации. Чтобы указать оператор сравнения «равно» для текста или значения, введите условия в виде строкового выражения в соответствующей ячейке в диапазоне условий.
=»=
ввод
»
где ввод — искомый текст или значение. Например:
Вводится в ячейку |
Вычисляется и отображается |
---|---|
=»=Егоров» |
=Егоров |
=»=3000″ |
=3000 |
Учет регистра
При фильтрации текстовых данных в Excel не учитывается регистр букв. Однако для поиска с учетом регистра можно воспользоваться формулой. Пример см. в разделе Условия с подстановочными знаками.
Использование заранее определенных имен
Вы можете назвать диапазон Условия, и ссылка на диапазон автоматически появится в поле Диапазон условий. Вы также можете указать имя База данных для диапазона списка, который будет фильтроваться, и имя Извлечение для области, в которой вы собираетесь вставлять строки. Эти диапазоны автоматически появятся в полях Исходный диапазон и Поместить результат в диапазон соответственно.
Создание условий с помощью формулы
В качестве условия можно использовать значение, вычисленное с помощью формулы. Обратите внимание на важные моменты, указанные ниже.
-
Формула должна возвращать результат ИСТИНА или ЛОЖЬ.
-
Поскольку используется формула, введенное строковое выражение должно иметь обычный вид, а не тот, который показан ниже:
=»=
ввод
» -
Не используйте название столбца в качестве названия условия. Либо оставьте название условия пустым, либо используйте название, не являющееся названием столбца в диапазоне списка (в последующих примерах: «Среднее арифметическое» и «Точное совпадение»).
Если в формуле используется название столбца, а не относительная ссылка на ячейку или имя диапазона, в ячейке с условием будет выведено значение ошибки #ИМЯ? или #ЗНАЧ!. Эту ошибку можно проигнорировать, поскольку она не влияет на фильтрацию диапазона списка.
-
В формуле, которая используется для условий, необходимо использовать относительную ссылку для ссылки на соответствующую ячейку в первой строке данных.
-
Все остальные ссылки в формуле должны быть абсолютными.
Несколько условий, один столбец, любое из условий истинно
Логическое выражение: (Продавец = «Егоров» ИЛИ Продавец = «Грачев»)
-
Вставьте как минимум три пустые строки над диапазоном списка, которые можно использовать в качестве диапазона условий. Диапазон условий должен включать названия столбцов. Убедитесь, что есть по крайней мере одна пустая строка между значениями условий и диапазоном списка.
-
Чтобы найти строки, отвечающие нескольким условиям для одного столбца, введите условия непосредственно одно под другим в разных строках диапазона условий. Используя пример, введите:
Тип
Продавец
Продажи
=»=Егоров»
=»=Грачев»
-
Щелкните ячейку в диапазоне списка. Используя пример, щелкните любую ячейку в диапазоне A6:C10.
-
На вкладке Данные в группе Сортировка и фильтр нажмите кнопку Дополнительно.
-
Выполните одно из следующих действий:
-
Чтобы отфильтровать диапазон списка, скрыв строки, не отвечающие условиям, выберите вариант Фильтровать список на месте.
-
Чтобы отфильтровать список, скопировав строки, не отвечающие условиям, в другую область листа, выберите вариант Скопировать результат в другое место, щелкните в поле Поместить результат в диапазон, а затем щелкните левый верхний угол области, в которой нужно вставить строки.
Совет При копировании отфильтрованных строк в другое место можно указать, какие столбцы следует включить в операцию копирования. Перед фильтрацией скопируйте нужные названия столбцов в первую строку области, в которую вы собираетесь вставить отфильтрованные строки. При применении фильтра введите ссылку на скопированные названия столбцов в поле Поместить результат в диапазон. Тогда скопированные строки будут включать только те столбцы, названия которых вы скопировали.
-
-
В поле Диапазон условий введите ссылку на диапазон условий, включая названия условий. Используя пример, введите $A$1:$C$3.
Чтобы временно убрать диалоговое окно Расширенный фильтр, пока вы выбираете диапазон условий, нажмите кнопку Свернуть диалоговое окно .
-
Используя пример, получаем следующий отфильтрованный результат для диапазона списка:
Тип
Продавец
Продажи
Мясо
Егоров
450 ₽
фрукты
Грачев
6 328 ₽
Фрукты
Егоров
6 544 ₽
Несколько условий, несколько столбцов, все условия истинны
Логическое выражение: (Тип = «Фрукты» И Продажи > 1000)
-
Вставьте как минимум три пустые строки над диапазоном списка, которые можно использовать в качестве диапазона условий. Диапазон условий должен включать названия столбцов. Убедитесь, что есть по крайней мере одна пустая строка между значениями условий и диапазоном списка.
-
Чтобы найти строки, отвечающие нескольким условиям в нескольких столбцах, введите все условия в одной строке диапазона условий. Используя пример, введите:
Тип
Продавец
Продажи
=»=Фрукты»
>1 000
-
Щелкните ячейку в диапазоне списка. Используя пример, щелкните любую ячейку в диапазоне A6:C10.
-
На вкладке Данные в группе Сортировка и фильтр нажмите кнопку Дополнительно.
-
Выполните одно из следующих действий:
-
Чтобы отфильтровать диапазон списка, скрыв строки, не отвечающие условиям, выберите вариант Фильтровать список на месте.
-
Чтобы отфильтровать список, скопировав строки, не отвечающие условиям, в другую область листа, выберите вариант Скопировать результат в другое место, щелкните в поле Поместить результат в диапазон, а затем щелкните левый верхний угол области, в которой нужно вставить строки.
Совет При копировании отфильтрованных строк в другое место можно указать, какие столбцы следует включить в операцию копирования. Перед фильтрацией скопируйте нужные названия столбцов в первую строку области, в которую вы собираетесь вставить отфильтрованные строки. При применении фильтра введите ссылку на скопированные названия столбцов в поле Поместить результат в диапазон. Тогда скопированные строки будут включать только те столбцы, названия которых вы скопировали.
-
-
В поле Диапазон условий введите ссылку на диапазон условий, включая названия условий. Используя пример, введите $A$1:$C$2.
Чтобы временно убрать диалоговое окно Расширенный фильтр, пока вы выбираете диапазон условий, нажмите кнопку Свернуть диалоговое окно .
-
Используя пример, получаем следующий отфильтрованный результат для диапазона списка:
Тип
Продавец
Продажи
фрукты
Грачев
6 328 ₽
Фрукты
Егоров
6 544 ₽
Несколько условий, несколько столбцов, любое из условий истинно
Логическое выражение: (Тип = «Фрукты» ИЛИ Продавец = «Грачев»)
-
Вставьте как минимум три пустые строки над диапазоном списка, которые можно использовать в качестве диапазона условий. Диапазон условий должен включать названия столбцов. Убедитесь, что есть по крайней мере одна пустая строка между значениями условий и диапазоном списка.
-
Чтобы найти строки, отвечающие нескольким условиям в нескольких столбцах, где любое условие может быть истинным, введите эти условия в разных строках диапазона условий. Используя пример, введите:
Тип
Продавец
Продажи
=»=Фрукты»
=»=Грачев»
-
Щелкните ячейку в диапазоне списка. Используя пример, щелкните любую ячейку в диапазоне списка A6:C10.
-
На вкладке Данные в группе Сортировка и фильтр нажмите кнопку Дополнительно.
-
Выполните одно из следующих действий:
-
Чтобы отфильтровать диапазон списка, скрыв строки, не отвечающие условиям, выберите вариант Фильтровать список на месте.
-
Чтобы отфильтровать список, скопировав строки, не отвечающие условиям, в другую область листа, выберите вариант Скопировать результат в другое место, щелкните в поле Поместить результат в диапазон, а затем щелкните левый верхний угол области, в которой нужно вставить строки.
Совет: При копировании отфильтрованных строк в другое место можно указать, какие столбцы следует включить в операцию копирования. Перед фильтрацией скопируйте нужные названия столбцов в первую строку области, в которую вы собираетесь вставить отфильтрованные строки. При применении фильтра введите ссылку на скопированные названия столбцов в поле Поместить результат в диапазон. Тогда скопированные строки будут включать только те столбцы, названия которых вы скопировали.
-
-
В поле Диапазон условий введите ссылку на диапазон условий, включая названия условий. Используя пример, введите $A$1:$B$3.
Чтобы временно убрать диалоговое окно Расширенный фильтр, пока вы выбираете диапазон условий, нажмите кнопку Свернуть диалоговое окно .
-
Используя пример, получаем следующий отфильтрованный результат для диапазона списка:
Тип
Продавец
Продажи
фрукты
Грачев
6 328 ₽
Фрукты
Егоров
6 544 ₽
Несколько наборов условий, один столбец во всех наборах
Логическое выражение: ( (Продажи > 6000 И Продажи < 6500 ) ИЛИ (Продажи < 500) )
-
Вставьте как минимум три пустые строки над диапазоном списка, которые можно использовать в качестве диапазона условий. Диапазон условий должен включать названия столбцов. Убедитесь, что есть по крайней мере одна пустая строка между значениями условий и диапазоном списка.
-
Чтобы найти строки, отвечающие нескольким наборам условий, каждый из которых содержит условия для одного столбца, используйте несколько столбцов с одинаковым заголовком. Используя пример, введите:
Тип
Продавец
Продажи
Продажи
>6 000
<6 500
<500
-
Щелкните ячейку в диапазоне списка. Используя пример, щелкните любую ячейку в диапазоне списка A6:C10.
-
На вкладке Данные в группе Сортировка и фильтр нажмите кнопку Дополнительно.
-
Выполните одно из следующих действий:
-
Чтобы отфильтровать диапазон списка, скрыв строки, не отвечающие условиям, выберите вариант Фильтровать список на месте.
-
Чтобы отфильтровать список, скопировав строки, не отвечающие условиям, в другую область листа, выберите вариант Скопировать результат в другое место, щелкните в поле Поместить результат в диапазон, а затем щелкните левый верхний угол области, в которой нужно вставить строки.
Совет: При копировании отфильтрованных строк в другое место можно указать, какие столбцы следует включить в операцию копирования. Перед фильтрацией скопируйте нужные названия столбцов в первую строку области, в которую вы собираетесь вставить отфильтрованные строки. При применении фильтра введите ссылку на скопированные названия столбцов в поле Поместить результат в диапазон. Тогда скопированные строки будут включать только те столбцы, названия которых вы скопировали.
-
-
В поле Диапазон условий введите ссылку на диапазон условий, включая названия условий. Используя пример, введите $A$1:$D$3.
Чтобы временно убрать диалоговое окно Расширенный фильтр, пока вы выбираете диапазон условий, нажмите кнопку Свернуть диалоговое окно .
-
Используя пример, получаем следующий отфильтрованный результат для диапазона списка:
Тип
Продавец
Продажи
Мясо
Егоров
450 ₽
фрукты
Грачев
6 328 ₽
Несколько наборов условий, несколько столбцов в каждом наборе
Логическое выражение: ( (Продавец = «Егоров» И Продажи > 3000) ИЛИ (Продавец = «Грачев» И Продажи > 1500) )
-
Вставьте как минимум три пустые строки над диапазоном списка, которые можно использовать в качестве диапазона условий. Диапазон условий должен включать названия столбцов. Убедитесь, что есть по крайней мере одна пустая строка между значениями условий и диапазоном списка.
-
Чтобы найти строки, отвечающие нескольким наборам условий, каждый из которых содержит условия для нескольких столбцов, введите каждый набор условий в отдельных столбцах или строках. Используя пример, введите:
Тип
Продавец
Продажи
=»=Егоров»
>3 000
=»=Грачев»
>1 500
-
Щелкните ячейку в диапазоне списка. Используя пример, щелкните любую ячейку в диапазоне списка A6:C10.
-
На вкладке Данные в группе Сортировка и фильтр нажмите кнопку Дополнительно.
-
Выполните одно из следующих действий:
-
Чтобы отфильтровать диапазон списка, скрыв строки, не отвечающие условиям, выберите вариант Фильтровать список на месте.
-
Чтобы отфильтровать список, скопировав строки, не отвечающие условиям, в другую область листа, выберите вариант Скопировать результат в другое место, щелкните в поле Поместить результат в диапазон, а затем щелкните левый верхний угол области, в которой нужно вставить строки.
Совет При копировании отфильтрованных строк в другое место можно указать, какие столбцы следует включить в операцию копирования. Перед фильтрацией скопируйте нужные названия столбцов в первую строку области, в которую вы собираетесь вставить отфильтрованные строки. При применении фильтра введите ссылку на скопированные названия столбцов в поле Поместить результат в диапазон. Тогда скопированные строки будут включать только те столбцы, названия которых вы скопировали.
-
-
В поле Диапазон условий введите ссылку на диапазон условий, включая названия условий. Используя пример, введите $A$1:$C$3. Чтобы временно убрать диалоговое окно Расширенный фильтр, пока вы выбираете диапазон условий, нажмите кнопку Свернуть диалоговое окно .
-
Используя пример, получим следующий отфильтрованный результат для диапазона списка:
Тип
Продавец
Продажи
фрукты
Грачев
6 328 ₽
Фрукты
Егоров
6 544 ₽
Условия с подстановочными знаками
Логическое выражение: Продавец = имя со второй буквой «г»
-
Чтобы найти текстовые значения с совпадающими знаками в некоторых из позиций, выполните одно или несколько действий, описанных ниже.
-
Чтобы найти строки, в которых текстовое значение в столбце начинается с определенной последовательности знаков, введите эти знаки, не используя знак равенства (=). Например, если ввести условие Бел, будут найдены строки с ячейками, содержащими слова «Белов», «Беляков» и «Белугин».
-
Воспользуйтесь подстановочными знаками.
Используйте
Чтобы найти
? (вопросительный знак)
Любой символ (один)
Пример: условию «стро?а» соответствуют результаты «строфа» и «строка»* (звездочка)
Любое количество символов
Пример: условию «*-восток» соответствуют результаты «северо-восток» и «юго-восток»~ (тильда), за которой следует ?, * или ~
Вопросительный знак, звездочку или тильду
Пример: условию «ан91~?» соответствует результат «ан91?»
-
-
Вставьте как минимум три пустые строки над диапазоном списка, которые можно использовать в качестве диапазона условий. Диапазон условий должен включать названия столбцов. Убедитесь, что есть по крайней мере одна пустая строка между значениями условий и диапазоном списка.
-
В строках под названиями столбцов введите условия, которым должен соответствовать результат. Используя пример, введите:
Тип
Продавец
Продажи
=»=Мя*»
=»=?г*»
-
Щелкните ячейку в диапазоне списка. Используя пример, щелкните любую ячейку в диапазоне списка A6:C10.
-
На вкладке Данные в группе Сортировка и фильтр нажмите кнопку Дополнительно.
-
Выполните одно из следующих действий:
-
Чтобы отфильтровать диапазон списка, скрыв строки, не отвечающие условиям, выберите вариант Фильтровать список на месте
-
Чтобы отфильтровать список, скопировав строки, не отвечающие условиям, в другую область листа, выберите вариант Скопировать результат в другое место, щелкните в поле Поместить результат в диапазон, а затем щелкните левый верхний угол области, в которой нужно вставить строки.
Совет: При копировании отфильтрованных строк в другое место можно указать, какие столбцы следует включить в операцию копирования. Перед фильтрацией скопируйте нужные названия столбцов в первую строку области, в которую вы собираетесь вставить отфильтрованные строки. При применении фильтра введите ссылку на скопированные названия столбцов в поле Поместить результат в диапазон. Тогда скопированные строки будут включать только те столбцы, названия которых вы скопировали.
-
-
В поле Диапазон условий введите ссылку на диапазон условий, включая названия условий. Используя пример, введите $A$1:$B$3.
Чтобы временно убрать диалоговое окно Расширенный фильтр, пока вы выбираете диапазон условий, нажмите кнопку Свернуть диалоговое окно .
-
Используя пример, получаем следующий отфильтрованный результат для диапазона списка:
Тип
Продавец
Продажи
Напитки
Шашков
5 122 ₽
Мясо
Егоров
450 ₽
фрукты
Грачев
6 328 ₽
Дополнительные сведения
Вы всегда можете задать вопрос специалисту Excel Tech Community или попросить помощи в сообществе Answers community.
Хитрости »
1 Май 2011 268596 просмотров
Как вставить скопированные ячейки только в видимые/отфильтрованные ячейки
Ни для кого не секрет, что Excel позволяет выделять только видимые строки. Например, если некоторые из них скрыты или к ним применен фильтр.
если кто-то не знает, как это сделать: выделяем диапазон — Alt+;(для английской раскладки);Alt+ж(для русской). Подробнее можно почитать в этой статье
Если после выделения только видимых ячеек их скопировать, то скопируются они как положено. Но при попытке вставить скопированное в отфильтрованный диапазон(либо содержащий скрытые строки) — то результат вставки будет не совсем такой, как Вы ожидали. Данные будут вставлены даже в скрытые строки. Либо как вариант получим ошибку «Данная команда не применима к несвязанному диапазону».
Копируем единый диапазон ячеек и вставляем только в видимые
Чтобы данные вставлялись только в видимые ячейки, можно применить такой макрос:
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
Как использовать: Для начала надо убедиться, что разрешены макросы и при необходимости включить их: почему не работает макрос. Затем копируем код выше, из Excel переходим в редактор VBA(Alt+F11) —Insert —Module. Вставляем туда скопированный код. Теперь код можно вызывать нажатием клавиш Alt+F8 -выделяем имя макроса —Выполнить(Run).
Для полноты картины, данные макросы лучше назначить на горячие клавиши(в приведенных ниже кодах это делается автоматически при открытии книги с кодом). Для этого приведенные ниже коды необходимо просто скопировать в модуль ЭтаКнига(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.
Если необходимо переносить только значения(т.е. если в ячейке будут формулы, то в итоге будет перенесен результат вычисления этой формулы), надо заменить строку в коде:
rCell.Copy ActiveCell.Offset(li, le)
на такую:
ActiveCell.Offset(li, le) = rCell.Value
Скачать пример
Tips_Macro_CopyPasteInHiddenRows.xls (46,5 KiB, 14 215 скачиваний)
Копируем только видимые ячейки и вставляем только в видимые
По многочисленным просьбам доработал код. Теперь возможно копировать любые диапазоны: со скрытыми строками, скрытыми столбцами и вставлять скопированные ячейки также в любые диапазоны: со скрытыми строками, скрытыми столбцами. Работает совершенно так же, как и предыдущий: нажатием клавиш Ctrl+q копируем нужный диапазон(со скрытыми/отфильтрованными строками и столбцами или не скрытыми), а вставляем сочетанием клавиш Ctrl+w. Вставка производится так же в скрытые/отфильтрованные строки и столбцы или без скрытых.
Если в копируемом диапазоне присутствуют формулы, то во избежание смещения ссылок можно копировать только значения ячеек — т.е. при вставке значений будут вставлены не формулы, а результат их вычисления. Или если необходимо сохранить форматы ячеек, в которые происходит вставка — будут скопированы и вставлены только значения ячеек. Для этого надо заменить строку в коде(в файле ниже):
rCell.Copy rResCell.Offset(lr, lc)
на такую:
rResCell.Offset(lr, lc) = rCell.Value
В файле ниже обе эти строки присутствуют, Вам надо лишь оставить ту, которая больше подходит под Ваши задачи.
Скачать пример:
Tips_Macro_CopyPasteInHiddenCells.xls (54,5 KiB, 12 770 скачиваний)
Так же см.:
Excel удаляет вместо отфильтрованных строк — все?! Как избежать
Статья помогла? Поделись ссылкой с друзьями!
Видеоуроки
Поиск по меткам
Access
apple watch
Multex
Power Query и Power BI
VBA управление кодами
Бесплатные надстройки
Дата и время
Записки
ИП
Надстройки
Печать
Политика Конфиденциальности
Почта
Программы
Работа с приложениями
Разработка приложений
Росстат
Тренинги и вебинары
Финансовые
Форматирование
Функции Excel
акции MulTEx
ссылки
статистика
@NSK-Mar
As others have stated, Excel does not allow you to paste into a filtered data. The best way to do this is to sort instead of filter. The easiest way to do this, especially for information that is not easily sortable, is to:
— filter your info
— fill the cells of your filtered list with a color
— Clear the filter
— do a custom sort of the list by color and then by a-z (to make it match up with the information you are pasting in)
— Paste your information in your sheet
— Reorder the colors from your cells and reorder the information if necessary.
Note: If the original order of your information is important, do what one user suggested and add a column to your original sheet and number each row, so you can resort back to its original order.
Also, if you are working with extremely large lists where you first have to identify the matching cells before copying over the information, you can always use conditional formatting to identify and highlight any matching cells in a column from one sheet to another within the same workbook. After doing this, you can then follow the steps above to copy the information over.