答案1
这更多是关于您能看到的内容。我怀疑一切都运行正常,但是,由于您已筛选行,因此您看不到它,即使在粘贴中也是如此!这是因为 Excel 必须在您筛选时对整行进行某些操作(我假设)...
您有两个选项可以解决这个问题,并进一步解释它。
假设您已筛选了第 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
答案2
Excel 将所有 24 个单元格粘贴到未筛选的网格中,因此只有前四个值会到达预期的单元格。其他值会复制到当前隐藏的行,可能会覆盖一些重要数据。
这是一个非常烦人的功能,但我们必须忍受它。