用辅助列或VBA的方法实现在Excel中粘贴时跳过隐藏行

2015-04-27 20:53 425 1 收藏

图老师excel知识栏目每天都会有更新哦!今天图老师小编又给大家分享一个excel小教程,各种小技巧尽在图老师,每天都会及时更新各种小教程,没有做不到,只有你不知道!

【 tulaoshi.com - 软件教程 】

为了替换筛选后的数据经常会将其他区域中的连续行数据复制粘贴到筛选区域,问题是无法直接复制,这是因为筛选后的区域包含隐藏行,部分数据会粘贴到隐藏行中。一般会对选择筛选区域用“定位→可见单元格”的方法选择可见单元格,再按“Ctrl+V”进行粘贴,Excel会提示“ ……Excel无法粘贴信息,原因是复制区域与粘贴区域形状不同……”。关于这个问题,可以使用辅助列或VBA的方法来解决,辅助列是用排序法把需要替换的数据放在一起再进行复制粘贴,VBA代码可直接把“Sheet2”表B列的数据粘贴到“Sheet1”表筛选后的区域。

例如下图所示,左侧的“Sheet1”表的A、B两列包含一些水果名称及数量,现在需要用右侧“Sheet2”表B1:B7区域中的数值(用红色标识)替换“Sheet1”表筛选“苹果”后的数量。

需要跳过隐藏行进行粘贴的区域 需要复制的连续行区域

方法一:使用辅助列

这个方法是用排序法把需要替换的数据放在一起再进行复制粘贴。即先添加一个“序号”辅助列,在其中输入数字序号,再用另一个辅助列对筛选后的数据进行标记,按第二个辅助列排序,再复制粘贴,最后对“序号”列排序还原原数据的排列顺序。具体步骤如下:

1.先取消筛选,在“Sheet1”表的C2、C3单元格分别输入数字“1”,“2”,选择这两个单元格后双击填充柄,将序号填充到C列。

添加序号辅助列

2.筛选A列中的“苹果”。在D列第二行的单元格中输入公式:

=ROW()

然后向下填充公式到D列的所有可见单元格。

添加标记列

3.取消筛选,按D列排序,将全部“苹果”的数量排在一起。

对标记列排序把要粘贴的数据排在一起

4.复制“Sheet2”表B1:B7数据粘贴到“Sheet1”表的B2:B8区域。

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/ruanjianjc/)

5.按序号列排序,还原原数据的排列顺序。

替换后的结果

最后删除C、D两列,完成替换。

方法二:VBA代码

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/ruanjianjc/)

用下面的VBA代码可直接把“Sheet2”表B列的数据粘贴到“Sheet1”表筛选后的区域。假如“Sheet1”表的数据区域为A1:B20,“Sheet2”表B列需要复制粘贴的数量为7个,先对“Sheet1”表A列筛选“苹果”,然后按Alt+F11打开VBA编辑器,在代码窗口中输入下列代码并运行即可。

Sub 粘贴时跳过隐藏行()Dim Rng As RangeSet Rng = Range("B2:B20").SpecialCells(xlCellTypeVisible)For Each cell In RngWorksheets("Sheet2").Cells(i + 1, 2).CopyActiveSheet.Paste Destination:=cellApplication.CutCopyMode = Falsei = i + 1If i = 7 Then EndNextEnd Sub

来源:http://www.tulaoshi.com/n/20150427/170887.html

延伸阅读
标签: 电脑入门
若要解决此问题,在应用筛选器后,保存该工作簿,然后关闭并重新打开工作簿。 此外,而不是选择范围标头,然后打开自动筛选,选择整个范围或该范围内的任何一个单元格,然后打开自动筛选。 若要应用的筛选器在 Excel 2007 工作表中,请执行下列操作: 1. 起始页选项卡上编辑组中单击排序和筛选。 2. 单击筛选。如下图所示: 注意: ...
标签: 办公软件
在Excel工作表中,您可以将列宽指定为 0(零)到 255。此值表示可在用标准字体 (标准字体:工作表的默认文本字体。标准字体决定了“常规”单元格样式的默认字体。)进行格式设置的单元格中显示的字符数。默认列宽为 8.43 个字符。如果列宽设置为 0,则隐藏该列。 您可以将行高指定为 0(零)到 409。此值以点数(1 点约等于 1/72 英寸)表示高度测...
标签: 电脑入门
Excel2007基础教程:隐藏行和列 在某些情况下,您可能希望隐藏特定的行或列。如果不想让用户看到特定的信息,或者需要打印一份概括工作表中的信息而并非显示全部细节的报告,这是非常有用的。 要隐藏工作表中的行或列,通过单击行或列的标题,选择要隐藏的行或多行。然后右击并从快捷菜单选择"隐藏飞或使用"开始" - "单...
标签: 电脑入门
通过以下的VBA代码,将其放到工作表的双击事件中,就能取到双击工作表的列标题(双击列的名字),当前列自动进行排序。 比如,将代码放在如下的事件中: Private Sub Worksheet_SelectionChange(ByVal Target As Range) End Sub 代码如下: Dim YouRg As Range If Target.Column = Me.Cells (1,1).CurrentRegion.Columns.Count And Target...
标签: 电脑入门
在工作表中,执行下列操作之一: 要锁定行,请选择其下方要出现拆分的行。 要锁定列,请选择其右侧要出现拆分的列。 要同时锁定行和列,请单击其下方和右侧要出现拆分的单元格。 如何选择单元格、区域、行或列在视图选项卡上的窗口组中,单击冻结窗格,然后单击所需的选项。 注释 当冻结窗格时,冻结窗格选项更改为取消冻

经验教程

205

收藏

41
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部