Вставка в отфильтрованные строки
Весьма распространенная ситуация, вопрос про которую мне задают почти на каждом тренинге. Есть таблица, в которой Фильтром (Данные — Фильтр) отобраны несколько строк. Задача — вставить какие-либо нужные нам значения именно в видимые отфильтрованные строки, пропуская при этом скрытые. Обычное копирование-вставка при этом не сработает, т.к. данные вставятся не только в видимые, но и в скрытые ячейки. Давайте посмотрим, как можно обойти эту проблему.
Способ 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.
Смотрите также: Лена, у Вас solotze на клавиатуре не нужно нажать левой диапазон. фильтра», _ Title:=»Копирование нужное значение? новые данные вставляются не в те Exit Sub EndТакой способ подойдет и про которую мне фильтр, то вставятся Excel провели с или формулой, как только в отфильтрованныеВставить только в видимые не Excel, а: может чтоб она
могу. клавишей мыши, перетащить2) Нажать кнопку
значений», _ Default:=ActiveCell.Value)Tviga с помощью заполнения?
которые я фильтранул…… If ‘переносим данные для ввода значений задают почти на отфильтрованные данные и помощью фильтра или в первой ячейке. строки. строки в ОпенОфис. Там это была активна, надоеще вот это и отпустить на «ВыделитьВидемыеЯчейки». Selection.AutoFilter Field:=1, Criteria1:=a: вобщем так.Тогда нужно сделатьВОПРОС как вставить
из одного диапазона
и для ввода каждом тренинге. Есть
в скрытые фильтром сортировки. Теперь их В нашем примере,
Второй способ.
Excel вообще не нужно еще куда нажать нашла любой панели кнопок3) Начать копирование c = ActiveCell.Columnне совсем понятно так: отфильтровать столбец, в те которые в другой только формул. Например, если таблица, в которой строки. Вообщем, получится нужно распечатать или мы написали число800
Также отфильтруем данные.числа, формулы, текст — фильтруете ячейки,такаюсь уже полМеню (лучше где-то в (ну а далее EndRow = ActiveSheet.UsedRange.Row как завязаны между выделить диапазон ячеек, отфильтрованы!!!! в видимые ячейки скидка для «Ашанов»
Фильтром ( каша. перенести в другое в ячейку D2 В первой ячейке можно несколькими способами. выделяете всю кучу дня в этуПравка конце панели, чтоб обычно). — 1 + собой листы. Нет которые хотим заполнить,(можно скопировать отфильтрофанные i = 1 не фиксированная, аДанные — ФильтрВторой способ. место. столбца D. Немного пишем число, формулу, Когда нужно вставить сразу и, не кнопкуПерейти логику панели неВопрос в другом. _ ActiveSheet.UsedRange.Rows.Count ‘ никаких одинаковых данных. затем в диалоговом данные на новый For Each cell составляет 10% от
) отобраны несколько строк.
Таблица та же.Копирование в Excel не по теме, текст, т.д. Теперь, числа, формулы, текст задумываясь о плохом,может есть ещеВыделить ломать). Где найти кнопку Находим последнюю строку Куча повторяющихся значений. окне ВЫДЕЛЕНИЕ ГРУППЫ лист «вставить значения» In pasterng If суммы сделки, то Задача — вставить Выделить таблицу снастроено так, что но хочется сказать
если строк тысячи, не во все просто вставляете в какой вариант?Только виденные ячейки8) закрыть панель «ВыделитьВидемыеЯчейки»? В Excel-2003 _ рабочей области Кодов нет. Из ЯЧЕЕК поставить переключатель
excel-office.ru
Копирование в Excel отфильтрованных данных.
— далее добавить cell.EntireRow.Hidden = False в первую отфильтрованную строку какие-либо нужные нам отфильтрованными данными. На копируются и скрытые здесь. Сочетание клавиш то выделяем ячейки строки таблицы, можно нужное место.solotze
Копировать настройки. ее можно найти For i =
того что было
ТОЛЬКО ВИДИМЫЕ ЯЧЕЙКИ, столбец, НО тогда Then cell.Value = можно ввести не
значения именно в закладке «Главная» нажимаем
ячейки. «Ctrl» + R так: нажимаем клавиши
воспользоваться фильтром. Какigrtsk:
ВставитьПосле вышеописанных действий в настройках панелей 1 To EndRow предложено могу только ввести нужное значение
нарушается последовательность списка copyrng.Cells(i).Value i = константу (1000), а видимые отфильтрованные строки,
в разделе «Редактирование»Рассмотрим два способа, – копирует данные «Ctrl» + «Shift» установить фильтр и: А я ужеНу, попробуйте тогда Сервис-Настройка-Команды,но не могу кнопка «ВыделитьВидемыеЯчейки» будет управления. If Cells(i, c).Value так. Вставить пару и нажать +. ЗАГОЛОВКИ ПОДПУНКТЫ с i + 1 формулу (=C2*10%) и также скопировать вниз. пропуская при этом кнопку
к по строке Excel + кнопку (стрелочку) как фильтровать в грешным делом подумал, в категории «Правка» все это найти там куда выOlya1985 = a Then столбцов. И формулу. В этом случае текстом описанием и End If NextДругое дело, если вам скрытые. Обычное копирование-вставкафункции «Найти и выделить»ак копировать отфильтрованные строки (в нашем примере вниз (или кнопку Excel, смотрите в что тему затролили кнопка «Выделить только в компе!!! ее перетащили и: Вопрос в другом. Cells(i, c).Select Selection.Copy
А больше не заполнятся только видимые т.п. НУЖНО СОХРАНИТЬ cell End Sub необходимо вставить в при этом не в Excel в Excel. – строка 2, вверх, зависит от статье «Фильтр вsolotze видимые ячейки».Понимаю, что туплю, можно будет выполнить
excel-office.ru
Вставка в отфильтрованные строки
Где найти кнопку Cells(EndRow + 5, знаю как. ячейки. ЦЕЛОСТНОСТЬ!!!!) ХЕЛП!!!!!!Как легко сообразить, макрос отфильтрованные ячейки не сработает, т.к. данные вставятся. Затем, нажимаем кнопкуПервый способ. копировали число 800 того, где хотим Excel». Но, чтобы: что значит Опен-офис?это вообще не но надо сделать… все действия из «ВыделитьВидемыеЯчейки»? В Excel-2003 c).Activate ‘ АктивируемВроде все сошлось.ГостьSerge_007
Способ 1. Вставка одинаковых значений или формул
запрашивает у пользователя одинаковые значения или не только в «Перейти». В появившемсяЕсть замечательная функция из ячейки D2). выделить ячейки – вставить данные только И как фильтровать?
могу найти!!! ЛибоArkaIIIa моего предыдущего сообщения. ее можно найти
последнюю строку _http://zalil.ru/33260588: Как вариант могу: В Excel 2007/2010 по очереди два формулы, а разные, видимые, но и диалоговом окне, нажимаем
в Excel – Получилось так. ниже или выше в видимые ячейки,solotze я туплю, либо: Вы же всё
Кстати, если впоследствии в настройках панелей плюс 5 строк.Olya1985 скинуть вам файл, по умолчанию данные диапазона — копирования да еще и в скрытые ячейки. кнопку «Выделить…». Вфункция «Специальная вставка» вТретий способ.
Способ 2. Макрос вставки любых значений
ячейки, в которой нужны свои способы,: _Boroda_, версия компа чудная. сами написали. Вам будет нужно управления. If Not IsEmpty(Cells(EndRow: Подскажите, пожалуйста, можно попробуете, если все вставляются только в и вставки. Затем брать их из другого Давайте посмотрим, как окне «Выделение группы Excel.В новом столбце написали число).
особенно, если многоНадо что быНе пойму в1) Выделяете весь удалить какие-то кнопкиА где именно? + 5, c).Value) ли в excel получится буду благодарен… отфильтрованные строки, что проверяет, чтобы их диапазона. Тогда придется использовать можно обойти эту ячеек» ставим галочкуИтак, у нас (в нашем примереТеперь, или нажимаем строк. при копировании, скрытые чем дело. диапазон с панелей, тоСемен Казменко Then ‘ если 2003 после копированияГость бы вставить во размеры совпадали, т.к. несложный макрос. Нажмите проблему. у строки «только есть таблица. – столбец Е)
сочетание клавиш «Ctrl»Первый способ - ячейки (цветные), неArkaIIIa2) Тыкаете F5 их можно перетаскивать: Расскажу только про строка не пустая, столбца с отфильтрованными: новые данные вставляются все необходимо воспользоваться разница в размерностях сочетание клавишЕсли вам нужно вставить видимые ячейки». НажимаемКак установить фильтр, смотрите выделяем ячейки. Нажимаем
planetaexcel.ru
Таблица Фильтрация ВСТАВКА -СРОЧНО НУЖНА ПОМОЩЬ!!!
+ G, илиобычный копировались.
: У меня, к3) В появившемся в обратном порядке Excel-2003. Дома под тогда… Do ActiveCell.Offset(1,
данными сделать так, не с помощью спецвставкой и поставить вызовет впоследствии ошибкуAlt+F11 одни и те «ОК». в статье «Фильтр клавишу F5. Выйдет клавишу F5. Выйдет.igrtsk
сожалению, нет под окне внизу кнопочка при наличии на
рукой только он. 0).Select Loop Until чтобы при их заполнения, а копируются галку на «Пропускать при вставке. Затем, в открывшемся окне же значения воТеперь на этой же в Excel».
диалоговое окно «Переход». диалоговое окно «Переход».Возьмем такую таблицу.: рукой 2003 экселя. «выделить» экране окна «Настройка».1) левой кнопкой мыши IsEmpty(ActiveCell.Value) ‘…находим пустую вставке в отедельный
с нового листа…(при пустые ячейки». макрос перебирает все Visual Basic вставьте все отфильтрованные строки выделенной таблице правойМы убираем фильтром Нажимаем кнопку «Выделить…». Нажимаем кнопку «Выделить…». Таблица будет однаsolotze Сделайте хотя бы4) Ставите флажок
Например, выбрали кнопку по любой панели ячейку ниже ActiveSheet.Paste столбец они вставлялись
протягивании все ок)Гость
ячейки в диапазоне новый пустой модуль списка, то все
мышкой вызываем контекстное из списка всех И, в новом И, в новом
для всех примеров., скрин шапки, что на «Только видимые «Сохранить» (дискетка) и кнопок (например, обычно Application.CutCopyMode = False с учетом фильтра,Pelena: Стоит 2007 …в вставки и переносит через меню просто. Предположим, что
меню. Нажимаем функцию Ивановых. Получилось так. диалоговом окне «Выделение диалоговом окне «ВыделениеУберем фильтром все цифры
Судя по расширению у вас там ячейки» перетащили ее отпустив включена панель «Стандартная»). Else ActiveSheet.Paste Application.CutCopyMode
то есть тольке: А у Вас том то и
туда данные из
Insert — Module у нас есть
«Копировать». В новом
Выделяем таблицу, нажимаем в группы ячеек», ставим группы ячеек» ставим 2 из таблицы. файла (
в менюшке верхней5) Тыкаете ОК
на окне «Настройка».2) в появившемся = False End те данные которые не получилось?
дело что по диапазона копирования, еслии скопируйте туда вот такой список месте (в нашем
контекстном меню «Копировать». галочку у слов
галочку у слов В оставшиеся видимые.ods вообще есть.6) У васOlya1985 контекстном меню список If End If видны нам иВыкладывайте файл умолчанию вставляет значения строка видима (т.е.
этот код:
сделок:
excelworld.ru
Вставить скопированные строки в Excel с учетом фильтра
примере – это Нажимаем левой мышкой «Только видимые ячейки». «Только видимые ячейки». ячейки поставим цифру) вы используете вsolotze автоматом выделяются только: спасибо! у меня панелей экранных кнопок, Next i End не hidden.Гость по порядку во
не отфильтрована).Sub PasteToVisible() Dim… и в нем нужно поставить ячейка А15) нажимаем ячейку А9, выбираем Нажимаем «ОК». Теперь,Нажимаем «ОК». Затем вставляем 600. В ячейку работе не офисный: F5 нашла как видимые ячейки, вы тоже excel 2003. в самом низу SubP.S. Мало данныхIgor_Tr: вот сам файлик все скрытые строкиГость copyrng As Range, фиксированную скидку в «Вставить». Всё. Получилось в контекстном меню не отменяя выделения, как обычно. В2 ставим число пакет от Microsoft функционирует. Высветилось окошко. их ctrl+с и а еще можно пункт «настройка». Выбрать — раз! Все: Sub Копировать_Отфильтрованное() Dimhttp://rghost.ru/38132320 в столбце…а не: Уважаемые знающие люди…помогите pasterng As Range 1000 рублей каждому так. «значения». в первой ячейкеЕщё один способ 600, затем копируем , а Open Но нет «выделить» куда нужно ctrl+v этот пункт добавить его. что выше можно a As Doubleв лист «все в нужные отфильтрованные, плиз… Dim cell As «Ашану».
Как, не копируя, сразуНажимаем «ОК». Вуаля. Скопировалось столбца (у нас вызвать диалоговое окно
его вниз по Office либо LibreOffice..
ArkaIIIasolotze в меню edit.3) появится окно сделат массивом. Но Dim c As
районы» в столбец побывал и спецвставкой
Суть есть список Range, i As
Фильтруем наш список Автофильтром,напечатать данные фильтра в не только значение
– Е2) вводим «Выделение группы ячеек». столбцу (тянем заА рекомендации вам:: так и делаю,
solotze «Настройка», там на я как-то Integer Dim r «Т» вставить значения с галкой «Пропускать из около 2000
Long ‘запрашиваем у
оставляя на экране Excel видимых строк, но формулу, цифру, т.д.
На закладке «Главная» правый нижний угол дают по MSsolotze
не активна F5: как в экселе вкладке «Команды» двас массивами не As Integer Dim из листа «ИЗНОС»
пустые ячейки». НЕ строк с огловлениями пользователя по очереди только «Ашаны». Вводим
, смотрите в статье и формат ячеек. Нажимаем сочетание клавиш
в разделе «Редактирование» ячейки В2). Значения Office. По сему
Повторно. Не «видя»,Pelena скопировать данные без списка.
очень. А так i As Integer из столбца «N» ВЫХОДИТ!!!! пустыми строками … диапазоны копирования и нужное значение в «Закладка листа ExcelЕсть один нюанс
«Ctrl» + «Enter». нажимаем на кнопку
скопировались только в у вас и что у Вас: F5 — функциональная скрытых ячеек4) в правом — чем мог,
Dim EndRow Asкак то такГость и 15 столбцами вставки Set copyrng первую ячейку и «Разметка страницы»» здесь.- вставлять отфильтрованныеВ Excel ячейки «Найти и выделить». видимые ячейки. Точно нет тех самых
там на экране клавиша на клавиатуре.нашла вот это списке выбрать категорию тем помог. Integer ‘как работает?
CyberForum.ru
Копирование в экселе (как скопировать без скрытых ячеек)
вот!!!: Короче никто нефильтрую по допустим = Application.InputBox(«Диапазон копирования»,
протягиваем (копируем за Какие способы есть данные не в можно выделить цветом В появившемся списке также можно вставлять меню и кнопок, происходит — помочь Как она может - «Правка»Olya1985
_ ‘ ВыделямPelena
знает и никто
5 столбцу, получаю
«Запрос», Type:=8) Set
правый нижний угол
ещё выделить только
строки, где стоит
по поределенному условию,
нажимаем на функцию и формулы. Мы о которых говорят
Вам очень трудно. быть не активна?
Выделяете диапазон — F55) в левом: хорошо. спасибо!
ячейку с нужным: Файл пока не
не поможет?!?!?
список из 560 pasterng = Application.InputBox(«Диапазон ячейки) вниз:
видимые строки, особенно фильтр. Например, у которое мы зададим
«Выделение группы ячеек».
в ячейке С2 и пишут все Надергайте скринов иArkaIIIa — Выделить —
появится список командСемен Казменко значением. Далее ОК.
смотрела, но дляSerge_007 строк… в соседний вставки», «Запрос», Type:=8)Умный Excel в данном
если их много. нас в примере условным форматированием и
Чтобы пишем такую формулу.solotze приложите к сообщению,
: Только видимые ячейки этой категории.: Предложенный Вам вариант
‘Если фильтр уже копировать/вставить этот способ: Я уже ответил.
столбец ПЫТАЮСЬ вставить ‘проверяем, чтобы они
случае понимает, что Как вставить данные — не в формулой. Смотрите, какзаполнить видимые ячейки в =А2*10
: igrtsk, может попроще будетsolotze — Ок. А
6) почти в такой заумный. Все
задействован — выделяем действительно не пойдет.Почему у Вас новые данные … были одинакового размера вы хотите ввести в отфильтрованные строки, строки 1-7, а это сделать, в
выделенных столбцах ExcelПолучилось так.это я уже разобраться.
Ну, попробуйте тогда дальше уже копируете, самом конце этого
это можно сделать любую видимую ячейку.Эти две таблицы не так - и получается что If pasterng.SpecialCells(xlCellTypeVisible).Cells.Count <> значения именно в смотрите в статье ниже или на
статье «Закрасить ячейку, нажимаем сочетание клавиш
Отменим фильтр. Получилась такая поняла. Так яsolotze Сервис-Настройка-Команды, в категории как обычно (см.п.5) списка кнопка простым копированием. Для _ ‘ Далее ведь как-то связаны надо разбираться локально вставляются данные во
copyrng.Cells.Count Then MsgBox отфильтрованные ячейки и «Вставить в видимые другом листе, т.д.
по условию в «Ctrl» + D. таблица.
смогу как то: вот что получается
«Правка» кнопка «Выделить- но где «ВыделитьВидемыеЯчейки» этого:
по ходу a между собой, можетPelena все по порядку
«Диапазоны копирования и делает то, что строки в Excel». Если вставим в Excel формулой». И все выделенныеФормула и цифры вставились сделать такое копирование?
_Boroda_ только видимые ячейки». все это найти7) на нее1) Выделить нужный = InputBox(prompt:=»Введите значение формулой попробовать найти: Я так понимаю
скрытие ячейки, а вставки разного размера!»,vbCritical
нужно:Весьма распространенная ситуация, вопрос строки, где стоитОтбор данных в
excelworld.ru
столбцы заполнятся данными
Вставка значений/формул, минуя скрытые ячейки
Автор Mclaire, 20.03.2010, 15:57
« назад — далее »
Добрый день.
Подскажите, пожалуйста, каким образом можно протягивать формулы, вставлять данные, минуя при этом скрытые ячейки?……..ну не получается и все тут, и в справке найти ничего не могу
Если правильно понял вопрос, то без макроса никак.
Не помешал бы конкретный пример.
ответила по имейлу, была бы очень признательна за помощь
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы…
www.excel-vba.ru
Просто СПАСИБО [+оказать+]
Считаешь СПАСИБО мало? Яндекс.Деньги: 41001332272872; WM: R298726502453
Если вопрос в том, чтобы вставить денные только в видимые ячейки, то можно обойтись и без макросов:
1. Сервис — Настройка — Команды — Правка — Выделить видимые ячейки. Для 2003. Для 2007 на память не скажу, но найти не сложно. Вытаскиваем эту кнопку на панель к другим кнопкам. (У меня — см. приложенный рисунок — она находится под словом «данные», но можно в любое другое место). Там она остается жить и при последующем открытии Excelя уже будет на том месте, куда Вы ее вывели.
2. Порядок действий — копируем нужное; выделяем, куда нужно вставить; жмем на кнопу, которую вывели (см. п1); вставляем данные любым из известных способов.
Скажи мне, кудесник, любимец ба’гов…
Яндекс-деньги: 41001632713405
Webmoney: R289877159277; Z102172301748; E177867141995
Огромное вам спасибо!!! Работает! Даже не представляете, сколько времени Вы мне сэкономили! УРА!!!!!!!!!!!!!!!!
Что-то я не пойму..
Выделить видимые ячейки можно с помощью:
F5-Выделить…-Выделить видимые ячеки
или нажав Alt+Ж
но это чтобы вытащить или выделить, а чтобы вставить в видимые ячейки это не пройдет.
Прикладываю файл.
Цитата: _Boroda_ от 20.03.2010, 18:55
Если вопрос в том, чтобы вставить денные только в видимые ячейки, то можно обойтись и без макросов:1. Сервис — Настройка — Команды — Правка — Выделить видимые ячейки. Для 2003. Для 2007 на память не скажу, но найти не сложно. Вытаскиваем эту кнопку на панель к другим кнопкам. (У меня — см. приложенный рисунок — она находится под словом «данные», но можно в любое другое место). Там она остается жить и при последующем открытии Excelя уже будет на том месте, куда Вы ее вывели.
2. Порядок действий — копируем нужное; выделяем, куда нужно вставить; жмем на кнопу, которую вывели (см. п1); вставляем данные любым из известных способов.
Умаляю, скажите, как сделать это в 2016 ЭКСЕЛЕ, я уже все настройки перерыл, ничего не выходит. Только осталось 2003 эксель поставить (((
П,С, Для админов: я офигел регистрироваться!!! Он меня 12 + 33 спрашивает, и прикинь, оказывается я не знаю сколько это будет!!! А капча — это отдельная экзекуция! Всегда фигел от таких сайтов с такой регистрацией (((.
Сначала выделяем весь диапазон, затем
F5 — выделить (про это написано выше)
Или вкладка Главная — Найти и выделить — Выделение группы ячеек
Ну а там уже ставим точку на «только видимые ячейки»
Скажи мне, кудесник, любимец ба’гов…
Яндекс-деньги: 41001632713405
Webmoney: R289877159277; Z102172301748; E177867141995
Все делаю, как написано:
— выделяю столбик снизу (столбец H: 23-33),
— выделяю только видимые строки в верхней таблице, столбец H. (Для наглядности развернул фильтр, что именно они выделены),
— нажимаю CTRL+V и… «Размер копируемой ячейки не соответствует размеру области вставки».
(В приложении скриншот)
Что я делаю ни так???
Здравствуйте,
область вставки должна быть кратна области копирования
т.е. если вы копируете 10 ячеек, то вставить вы их можете только в области, которые кратны 10
Как вставить значения в видимые / отфильтрованные ячейки только в Excel?
В Excel, если вы отфильтровали данные или скрыли некоторые ячейки и когда вы вставляете значения в отфильтрованный или скрытый диапазон, скрытые ячейки также будут заполнены вставленными значениями. Здесь я расскажу вам несколько хитростей, чтобы вставить значения в видимые ячейки только в Excel.
Вставить значения в видимые ячейки с помощью VBA
Вставьте значения в видимые ячейки с помощью команды «Вставить в видимый диапазон». Kutools for Excel
В Excel нет других способов решить эту проблему, кроме VBA.
1. Нажмите Alt + F11 одновременно, а Microsoft Visual Basic для приложений окно выскакивает.
2. Нажмите Вставить > Модули, затем вставьте ниже код VBA в всплывающее окно модуля.
VBA: вставлять значения только в видимые ячейки.
Sub CopyFilteredCells()
'Updateby20150203
Dim rng1 As Range
Dim rng2 As Range
Dim InputRng As Range
Dim OutRng As Range
xTitleId = "KutoolsforExcel"
Set InputRng = Application.Selection
Set InputRng = Application.InputBox("Copy Range :", xTitleId, InputRng.Address, Type: = 8)
Set OutRng = Application.InputBox("Paste Range:", xTitleId, Type: = 8)
For Each rng1 In InputRng
rng1.Copy
For Each rng2 In OutRng
If rng2.EntireRow.RowHeight > 0 Then
rng2.PasteSpecial
Set OutRng = rng2.Offset(1).Resize(OutRng.Rows.Count)
Exit For
End If
Next
Next
Application.CutCopyMode = False
End Sub
3. Нажмите F5 ключа или Run , затем появится диалоговое окно, в котором вы можете выбрать значения для копирования. Смотрите скриншот:
4. После выбора значений щелкните OK, затем появится другое диалоговое окно для выбора диапазона для вставки выбранных данных. Смотрите скриншот:
5. Нажмите OK. Вы можете видеть только видимые ячейки, в которые вставлены выбранные значения.
Собственно, если вы используете Вставить в видимый диапазон полезности Kutools for Excel — удобный инструмент Excel, вы можете быстро и легко решить проблему вставки значений в видимый диапазон.
После установки Kutools for Excel, пожалуйста, сделайте следующее:(Бесплатная загрузка Kutools for Excel Сейчас!)
1. Выберите диапазон значений, которые вы хотите скопировать и вставить, затем щелкните Кутулс > Диапазон > Вставить в видимый диапазон > Все or Только вставить значения. Смотрите скриншот:
2. Затем Вставить в видимый диапазон появится диалоговое окно и выберите диапазон, в который вы хотите вставить значения. Смотрите скриншот:
3. Нажмите OK. Теперь выбранные значения вставляются только в видимый диапазон.
Примечание: Эта утилита работает как со скрытыми, так и с отфильтрованными строками или столбцами.
Щелкните здесь, чтобы получить более подробную информацию об утилите «Вставить в видимый диапазон».
Лучшие инструменты для работы в офисе
Kutools for Excel Решит большинство ваших проблем и повысит вашу производительность на 80%
- Снова использовать: Быстро вставить сложные формулы, диаграммы и все, что вы использовали раньше; Зашифровать ячейки с паролем; Создать список рассылки и отправлять электронные письма …
- Бар Супер Формулы (легко редактировать несколько строк текста и формул); Макет для чтения (легко читать и редактировать большое количество ячеек); Вставить в отфильтрованный диапазон…
- Объединить ячейки / строки / столбцы без потери данных; Разделить содержимое ячеек; Объединить повторяющиеся строки / столбцы… Предотвращение дублирования ячеек; Сравнить диапазоны…
- Выберите Дубликат или Уникальный Ряды; Выбрать пустые строки (все ячейки пустые); Супер находка и нечеткая находка во многих рабочих тетрадях; Случайный выбор …
- Точная копия Несколько ячеек без изменения ссылки на формулу; Автоматическое создание ссылок на несколько листов; Вставить пули, Флажки и многое другое …
- Извлечь текст, Добавить текст, Удалить по позиции, Удалить пробел; Создание и печать промежуточных итогов по страницам; Преобразование содержимого ячеек в комментарии…
- Суперфильтр (сохранять и применять схемы фильтров к другим листам); Расширенная сортировка по месяцам / неделям / дням, периодичности и др .; Специальный фильтр жирным, курсивом …
- Комбинируйте книги и рабочие листы; Объединить таблицы на основе ключевых столбцов; Разделить данные на несколько листов; Пакетное преобразование xls, xlsx и PDF…
- Более 300 мощных функций. Поддерживает Office/Excel 2007-2021 и 365. Поддерживает все языки. Простое развертывание на вашем предприятии или в организации. Полнофункциональная 30-дневная бесплатная пробная версия. 60-дневная гарантия возврата денег.
Вкладка Office: интерфейс с вкладками в Office и упрощение работы
- Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
- Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
- Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!
Комментарии (21)
Оценок пока нет. Оцените первым!
Хитрости »
1 Май 2011 268707 просмотров
Как вставить скопированные ячейки только в видимые/отфильтрованные ячейки
Ни для кого не секрет, что 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 225 скачиваний)
Копируем только видимые ячейки и вставляем только в видимые
По многочисленным просьбам доработал код. Теперь возможно копировать любые диапазоны: со скрытыми строками, скрытыми столбцами и вставлять скопированные ячейки также в любые диапазоны: со скрытыми строками, скрытыми столбцами. Работает совершенно так же, как и предыдущий: нажатием клавиш Ctrl+q копируем нужный диапазон(со скрытыми/отфильтрованными строками и столбцами или не скрытыми), а вставляем сочетанием клавиш Ctrl+w. Вставка производится так же в скрытые/отфильтрованные строки и столбцы или без скрытых.
Если в копируемом диапазоне присутствуют формулы, то во избежание смещения ссылок можно копировать только значения ячеек — т.е. при вставке значений будут вставлены не формулы, а результат их вычисления. Или если необходимо сохранить форматы ячеек, в которые происходит вставка — будут скопированы и вставлены только значения ячеек. Для этого надо заменить строку в коде(в файле ниже):
rCell.Copy rResCell.Offset(lr, lc)
на такую:
rResCell.Offset(lr, lc) = rCell.Value
В файле ниже обе эти строки присутствуют, Вам надо лишь оставить ту, которая больше подходит под Ваши задачи.
Скачать пример:
Tips_Macro_CopyPasteInHiddenCells.xls (54,5 KiB, 12 781 скачиваний)
Так же см.:
Excel удаляет вместо отфильтрованных строк — все?! Как избежать
Статья помогла? Поделись ссылкой с друзьями!
Видеоуроки
Поиск по меткам
Access
apple watch
Multex
Power Query и Power BI
VBA управление кодами
Бесплатные надстройки
Дата и время
Записки
ИП
Надстройки
Печать
Политика Конфиденциальности
Почта
Программы
Работа с приложениями
Разработка приложений
Росстат
Тренинги и вебинары
Финансовые
Форматирование
Функции Excel
акции MulTEx
ссылки
статистика