Это больше о том, что вам видно. Я подозреваю, что все работает нормально, но, поскольку вы отфильтровали строки, вы не видите его даже в вставке! Это потому, что Excel должен (я предполагаю) делать что-то для всей строки при фильтрации ...
У вас есть 2 варианта, чтобы обойти это, и более подробно объяснить это.
Предполагая, что вы отфильтровали данные от 1 до 50 строки. Вам нужно будет сделать свой выбор, скопировать (как у вас есть), но вставить его после строки 50 (с обычной вставкой). Затем вы увидите, что паста именно так, как вы хотите.
Если вы вставите в те же строки, что и отфильтрованная таблица, вы не сможете увидеть "правильную" вставку, пока не удалите фильтр (но вставленные значения будут там, где вы хотите.
Чтобы вставить в то же место (между строками 1 и 50), щелкните правой кнопкой мыши и выберите « paste special
-> paste picture
... Да, он будет вставлен в виде картинки, поэтому вы не сможете использовать его для создания формулы, но в зависимости от ваших потребностей может быть достаточно
Другой вариант - вставить только видимые ячейки (хотя я не думаю, что это вам поможет)...
1) Copy the cells you want pasted.
2) Highlight range you want to paste in to
3) Go to Home ribbon, Editing box, Find & Select.
4) choose option - Go To Special
5) bottom right of the box choose Visible Cells only.
6) now paste.
Источник
Наконец, из того же источника, опция VBa (не тестировалась)
Sub Copy_Filtered_Cells()
Set from = Selection
Set too = Application.InputBox("Select range to copy selected cells to", Type:=8)
For Each Cell In from
Cell.Copy
For Each thing In too
If thing.EntireRow.RowHeight > 0 Then
thing.PasteSpecial
Set too = thing.Offset(1).Resize(too.Rows.Count)
Exit For
End If
Next
Next
End Sub
Как добавить VBA в MS Office?