Подошёл вот этот макрос http://www.planetaexcel.ru/techniques/2/173/
Скрытый текст:Sub PasteToVisible() Dim copyrng As Range, pasterng As Range Dim cell As Range, i As Long
Источник: forum.ixbt.com
Копирование только видимых ячеек
Если некоторые ячейки, строки или столбцы на листе не отображаются, вы сможете скопировать все ячейки (или только видимые ячейки). По умолчанию Excel копирует не только видимые, но и скрытые или фильтрованные ячейки. Если же требуется скопировать только видимые ячейки, выполните действия, описанные ниже. Например, можно скопировать только сводные данные из структурированного листа.
Выполните указанные ниже действия:
Выделите ячейки, которые вы хотите скопировать. Дополнительные сведения можно найти в разделе выделение ячеек, диапазонов, строк и столбцов на листе.
Совет: Чтобы отменить выделение ячеек, щелкните любую ячейку на листе.
Щелкните Главная > Найти и выделить, а затем выберите пункт Выделение группы ячеек.

Выберите параметр только видимые ячейки и нажмите кнопку ОК.
Щелкните Копировать (или нажмите клавиши CTRL+C).

Выделите левую верхнюю ячейку области вставки и нажмите кнопку Вставить (или нажмите клавиши CTRL + V).
Совет: Чтобы скопировать выделенный фрагмент на другой лист или в другую книгу, щелкните вкладку другого листа или выберите другую книгу и выделите левую верхнюю ячейку области вставки.
Примечание: При копировании значения последовательно вставляются в строки и столбцы. Если область вставки содержит скрытые строки или столбцы, возможно, потребуется отобразить их, чтобы увидеть все скопированные данные.
При копировании и вставке видимых ячеек в диапазоне данных, который содержит скрытые ячейки или к которому применен фильтр, можно заметить, что скрытые ячейки вставляются вместе с видимыми. К сожалению, вы не можете изменить этот параметр, когда вы копируете и вставляете диапазон ячеек в Excel в Интернете, так как Вставка только видимых ячеек недоступна.
Тем не менее, если отформатировать данные как таблицу и применить фильтр, можно скопировать и вставить только видимые ячейки.
Если не нужно форматировать данные как таблицу и установлено классическое приложение Excel, можно открыть книгу в нем, чтобы скопировать и вставить видимые ячейки. Для этого нажмите кнопку Открыть в Excel и выполните действия, описанные в статье копирование и вставка только видимых ячеек.
Дополнительные сведения
Вы всегда можете задать вопрос специалисту Excel Tech Community, попросить помощи в сообществе Answers community, а также предложить новую функцию или улучшение на веб-сайте Excel User Voice.
Примечание: Эта страница переведена автоматически, поэтому ее текст может содержать неточности и грамматические ошибки. Для нас важно, чтобы эта статья была вам полезна. Была ли информация полезной? Для удобства также приводим ссылку на оригинал (на английском языке).
Источник: support.office.com
Как вставить скопированные ячейки только в видимые/отфильтрованные ячейки
В общем-то смысл статьи уже, думаю, понятен из названия. Просто чуть-чуть расширю.
Ни для кого не секрет, что 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
Для полноты картины, данные макросы лучше назначить на горячие клавиши(в приведенных ниже кодах это делается автоматически при открытии книги с кодом). Для этого приведенные ниже коды необходимо просто скопировать в модуль ЭтаКнига(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.
Tips_Macro_CopyPasteInHiddenRows.xls (46,5 KiB, 10 144 скачиваний)
Копируем только видимые ячейки и вставляем только в видимые По просьбам посетителей сайта решил доработать данную процедуру. Теперь возможно копировать любые диапазоны: со скрытыми строками, скрытыми столбцами и вставлять скопированные ячейки также в любые диапазоны: со скрытыми строками, скрытыми столбцами. Работает совершенно так же, как и предыдущий: нажатием клавиш Ctrl+q копируем нужный диапазон(со скрытыми/отфильтрованными строками и столбцами или не скрытыми), а вставляем сочетанием клавиш Ctrl+w. Вставка производится так же в скрытые/отфильтрованные строки и столбцы или без скрытых. Если в копируемом диапазоне присутствуют формулы, то во избежание смещения ссылок можно копировать только значения ячеек – т.е. при вставке значений будут вставлены не формулы, а результат их вычисления. Или если необходимо сохранить форматы ячеек, в которые происходит вставка – будут скопированы и вставлены только значения ячеек. Для этого надо заменить строку в коде(в файле ниже):
rCell.Copy rResCell.Offset(lr, lc)
rResCell.Offset(lr, lc) = rCell.Value
В файле ниже обе эти строки присутствуют, Вам надо лишь оставить ту, которая больше подходит под Ваши задачи.
Tips_Macro_CopyPasteInHiddenCells.xls (54,5 KiB, 8 442 скачиваний)
Так же см.: [[Excel удаляет вместо отфильтрованных строк – все?! Как избежать]]
Статья помогла? Поделись ссылкой с друзьями!
Поиск по меткам
Дмитрий, здравствуйте! У меня почему-то не работают ваши файлы. Приведу пример на последнем файле: Открываю его в Excel 2013; разрешаю редактирование-вылезает ошибка Run-time error ‘1004’: Method ‘OnKey’ of object’_Application’ failed Когда нажимаю debug вылезает окошко макроса и там подсвечена желтым часть строки: Application.OnKey “^q”, “My_Copy” А если пробую нажимать в таблице ctrl+q, то вылезает окошко форматирования Подскажите, пожалуйста, как это исправить.
Дмитрий, когда скачиваете файл с интернета – он открывается в защищенном режиме, о чем у Вас появляется предупреждение. Нельзя обратиться к свойствам листов и книг, если книга открыта в защищенном режиме. А именно так по умолчанию открываются книги, скачанные откуда-то. Варианта по сути два: 1. При открытии файла разрешить редактирование и перезапустить книгу. 2. Добавить папку, в которую скачиваются вложения, в список доверенных(Файл -Параметры -Центр управления безопасностью -Параметры центра управления безопасностью -Надежные расположения). Есть еще вариант: в настройках макросов разрешить запуск макросов с уведомлением. Тогда сначала будет появляться запрос на редактирование, а самым последним запрос на разрешение выполнения содержимого.
Дмитрий, спасибо большое! После пересохранения книги и добавления надежного расположения все заработало=)
Источник: www.excel-vba.ru
Как копировать в Экселе — простые и эффективные способы
Здравствуйте, уважаемые читатели! В этой статье я расскажу как копировать и вырезать ячейки в Excel. С одной стороны, Вы узнаете максимум информации, которую я считаю обязательной. Ежедневной. С другой стороны, она станет фундаментом для изучения более прогрессивных способов копирования и вставки. Потому, если хотите использовать Эксель «на всю катушку», прочтите до конца этот пост и следующий!
Сначала разберемся с принципами копирования и переноса информации, а потом углубимся в практику.
И так, чтобы скопировать одну или несколько ячеек – выделите их и выполните операцию копирования (например, нажав Ctrl+C ). Скопированный диапазон будет выделен «бегающей» рамкой, а данные из него – перемещены в буферы обмена Windows и Office. Установите курсор в ячейку для вставки и выполните операцию «Вставка» (к примеру, нажмите Ctrl+V ). Информация из буфера обмена будет помещена в новое место. При вставке массива – выделите ту клетку, в которой будет располагаться его верхняя левая ячейка. Если в ячейках для вставки уже есть данные – Эксель заменит их на новые без дополнительных уведомлений.
Если вы выполняете копирование – исходные данные сохраняются, а если перемещение – удаляются. Теперь давайте рассмотрим все способы копирования и переноса, которые предлагает нам Эксель.
Копирование с помощью горячих клавиш
Этот способ – самый простой и привычный, наверное, для всех. Клавиши копирования и вставки совпадают с общепринятыми в приложениях для Windows:
- Ctrl+C – копировать выделенный диапазон
- Ctrl+X – вырезать выделенный диапазон
- Ctrl+V – вставить без удаления из буфера обмена
- Enter – вставить и удалить из буфера обмена
Например, если нужно скопировать массив А1:А20 в ячейки С1:С20 – выделите его и нажмите Ctrl+C (при перемещении – Ctrl+X ). Установите курсор в ячейку C1 и нажмите Ctrl+V . Информация будет вставлена и останется в буфере обмена, можно делать повторную вставку в другом месте. Если вместо Ctrl+V нажать Enter — данные тоже будут вставлены, но пропадут из буфера обмена, исчезнет «бегающее» выделение.
Копирование с помощью контекстного меню
Команды копирования, вырезания и вставки есть и в контекстном меню рабочего листа Excel. Чтобы скопировать диапазон — выделите его и кликните правой кнопкой мыши внутри выделения. В контекстном меню выберите Копировать или Вырезать . Аналогично, для вставки скопированной информации, в ячейке для вставки вызовите контекстное меню и выберите Вставить (либо переместите туда курсор и нажмите Enter ).
Команды копирования в контекстном меню Эксель
Копирование с помощью команд ленты
Те же действия можно выполнить и с помощью команд ленты:
- Копирование: Главная – Буфер обмена – Копировать
- Вырезание: Главная – Буфер обмена – Вырезать
- Вставка: Главная – Буфер обмена – Вставить
Копирование в Эксель с помощью ленточных команд
Последняя команда из перечисленных – комбинированная, она имеет дополнительные опции вставки (см. рис. выше) вставить только формулы:
- Вставить – вставить ячейку полностью (значения, формулы, форматы ячейки и текста, проверка условий)
- Формулы – вставить только формулы или значения
- Формулы и форматы чисел – числа, значения с форматом числа как в источнике
- Сохранить исходное форматирование – вставить значения, формулы, форматы ячейки и текста
- Без рамок – все значения и форматы, кроме рамок
- Сохранить ширину столбцов оригинала – вставить значения, формулы, форматы, установить ширину столбца, как у исходного
- Транспонировать – при вставке повернуть таблицу так, чтобы строки стали столбцами, а столбцы – строками
- Значения – вставить только значения или результаты вычисления формул
- Значения и форматы чисел – формулы заменяются на результаты их вычислений в исходном формате чисел
- Значения и исходное форматирование формулы заменяются на результаты их вычислений в исходном формате чисел и ячеек
- Форматирование – только исходный формат, без данных
- Вставить связь – вставляет формулу, ссылающуюся на скопированную ячейку
- Рисунок – вставляет выделенный диапазон, как объект «Изображение»
- Связанный рисунок – Вставляет массив, как изображение. При изменении ячейки-источника – изображение так же изменяется.
Все перечисленные команды являются инструментами Специальной вставки .
Копирование перетягиванием в Эксель
Этот способ – самый быстрый и наименее гибкий. Выделите массив для копирования и наведите мышью на одну из его границ. Курсор примет вид четырёхнаправленной стрелки. Хватайте мышью и тяните ячейки туда, куда хотите их переместить.
Чтобы скопировать массив – при перетягивании зажмите Ctrl . Курсор из четырехнаправленного превратится в стрелку со знаком «+».
Копирование автозаполнением
Работу автозаполнения я уже описывал в посте Расширенные возможности внесения данных. Здесь лишь немного напомню и дополню. Если нужно скопировать данные или формулы в смежные ячейки – выделите ячейку для копирования найдите маленький квадратик (маркер автозаполнения) в правом нижнем углу клетки. Тяните за него, чтобы заполнить смежные клетки аналогичными формулами или скопировать информацию.
Маркер автозаполнения
Есть еще один способ – команда Заполнить . Выделите массив для заполнения так, чтобы ячейка для копирования стояла первой в направлении заполнения. Выполните одну из команд, в зависимости от направления заполнения:
- Главная – Редактирование – Заполнить вниз
- Главная – Редактирование – Заполнить вправо
- Главная – Редактирование – Заполнить вверх
- Главная – Редактирование – Заполнить влево
Все выделенные ячейки будут заполнены данными или формулами из исходной.
Вот я и перечислил основные способы копирования и вставки. Как я обещал, далее мы рассмотрим специальные возможности копирования и вставки, о которых не знают новички. Читайте, они простые в использовании, а пользы приносят очень много. Понравилась статья? Порекомендуйте другу и вместе с ним подписывайтесь на обновления! Уже написано очень много интересного и полезного материала, но лучшие посты еще впереди!
Источник: officelegko.com
Как в excel скопировать только видимые ячейки

= Мир MS Excel/Копирование в экселе – Мир MS Excel
–> –> –> Правила форума |