Excel复制粘贴,包括隐藏列
我使用的是Excel 2016工作表,由于UI原因,它隐藏了两列。我需要能够过滤出数据,然后将其复制粘贴到另一个表中,隐藏列保持不变,并在粘贴到目标后显示(它将包含更长的类似事务日志,而不仅仅是一次复制粘贴) 添加目标图片-即希望将B列和C列的隐藏内容粘贴到目标电子表格中这可能吗? 在一篇文章中问两个问题可能不是很好的形式,但是除了手动执行过滤和复制粘贴功能到另一个电子表格之外,还有其他选择吗?即:Excel复制粘贴,包括隐藏列,excel,Excel,我使用的是Excel 2016工作表,由于UI原因,它隐藏了两列。我需要能够过滤出数据,然后将其复制粘贴到另一个表中,隐藏列保持不变,并在粘贴到目标后显示(它将包含更长的类似事务日志,而不仅仅是一次复制粘贴) 添加目标图片-即希望将B列和C列的隐藏内容粘贴到目标电子表格中这可能吗? 在一篇文章中问两个问题可能不是很好的形式,但是除了手动执行过滤和复制粘贴功能到另一个电子表格之外,还有其他选择吗?即: 运行手动过滤器以清除数量字段中的空白 挑选 执行手动Ctrl+C-Ctrl+V功能 有没有
- 运行手动过滤器以清除数量字段中的空白李>
- 挑选
- 执行手动Ctrl+C-Ctrl+V功能
有没有办法让它更容易?不幸的是,到目前为止还没有VBA或宏体验编辑-完全误解了这个问题 复制时希望包含隐藏单元格-这是隐藏单元格的标准行为,但不是筛选列的标准行为。如果您想要避免VBA abd,您正在处理小的连续范围,那么一个简单的公式可能是最简单的解决方案 使用您的示例,我将任意命名源工作表“Sheet1”和目标工作表“Sheet2”。在Sheet2中,单击单元格A2并在公式栏中键入:=Sheet1!A3现在单击单元格A2的右下角,将其向右拖动,穿过D2,然后向下拖动到D7。 高亮显示范围后,按ctrl C进行复制,然后右键单击以粘贴特殊值 你完了 下面是一个VBA解决方案:
Sub copyrng()
Dim srcrng As Range
Dim tmprng As Range
Dim dstrng As Range
Dim srcws As Worksheet
Dim dstws As Worksheet
Set srcrng = Application.InputBox("Area to copy", "Source", Type:=8)
Set srcws = srcrng.Parent
Set tmprng = Application.InputBox("Top Left Corner of Destination", "Destination", Type:=8)
Set dstws = tmprng.Parent
Set dstrng = dstws.Range(tmprng.Address, tmprng.Parent.Cells(tmprng.Row + srcrng.Rows.Count - 1, tmprng.Column + srcrng.Columns.Count - 1))
dstrng = srcrng.Value
End Sub
第一个答案(回答错误的问题)
您可以使用“转到…”复制可见单元格
高亮显示要复制的区域,按Ctrl G,单击“特殊…”,选择“仅可见单元格”,然后按Ctrl C进行复制
现在,粘贴时所有隐藏的单元格都将被保留。不,使用常规Excel功能无法做到这一点,因为Excel无法知道当其中一列的值为空时要跳过哪些列/单元格,这必须由人来决定和完成 也许现在是进入宏世界的好时机,因为您不需要自定义代码,但可以使用录制的宏而无需进一步操作。此Excel功能适用于像您这样没有经验的用户
- 查看/宏/录制宏
- 命名宏
- 使用过滤器组合框过滤空白
- 使用
/Special/Current Region选择区域(不要用鼠标或键盘选择单元格,您的代码应该是通用的,不应该包含手动区域,因为您不想进行任何编码)CTRL-G
复制CTRL-C
- 如果“待粘贴”单元格并非适用于所有情况,则应停止在此处录制宏。如果粘贴单元是固定的,则在录制宏时粘贴内容
CTRL-V
当您有足够的信心时,请尝试宏中的编辑菜单,看看手头有什么代码,可能会做一些小的更改等。我看到许多人一开始不熟悉基本的编码,但在Excel中看到此功能后,不知何故开始编写自己的代码。祝你好运 深奥易懂的代码很酷,但是
dstws = activesheet
将始终是源,因为activesheet在inputbox之后直接返回
我试着把它改成
Set dstws = tmprng.Parent
但出于某种原因,这打破了传统
Set dstrng = dstws.Range..
我得到一个运行时错误1004对象的方法范围_工作表失败
如果我能解决这个问题,这个解决方案将适用于任何目的地,甚至其他文件
另一种方法是使用vba取消筛选数据,然后进行复制,然后重新启用相同的筛选器。完成后,您可以到任何地方粘贴剪贴板上的内容。我认为@sql scholar不希望在粘贴时包含隐藏的单元格,底部的屏幕截图清楚地显示只有可见的单元格被复制。我知道他/她只想缩短筛选-选择-复制-粘贴过程。对不起,我认为我在截图上做得很糟糕,因为我应该添加一个所需方式的示例,因为当前截图显示了当前发生的情况,这意味着隐藏列被留下,但我需要将它们包括在内!然而,第二部分是正确的-我还想知道是否也有可能自动化这个过滤器的复制和粘贴过程,再次抱歉让这篇文章有点混乱,因为我询问了两个不同的技术问题。除此之外。非常感谢您的反馈。不幸的是,公式选项不起作用。它们是不同的Excel文件/工作簿,虽然我知道您也可以将Excel公式指向另一个文件,而不仅仅是另一个工作表,但问题是初始工作簿(“Sheet1”)在处理后不会保留更长时间,而另一个目标工作表(“Sheet2”)将有所有事务的日志。听起来是时候深入了解VBA了。好消息,您已经在使用可用的最佳资源之一—stackoverflow!我提供的代码显示了在工作表之间传输数据的一种方法。用这个