有時(shí)在篩選后需要將其他區(qū)域中的連續(xù)行數(shù)據(jù)復(fù)制粘貼到篩選區(qū)域,以替換篩選后的數(shù)據(jù)。由于篩選后的區(qū)域包含隱藏行,因而無(wú)法直接進(jìn)行復(fù)制粘貼,否則部分?jǐn)?shù)據(jù)會(huì)粘貼到隱藏行中。而如果復(fù)制后對(duì)選擇篩選區(qū)域用“定位→可見(jiàn)單元格”的方法選擇可見(jiàn)單元格,再按“Ctrl+V”進(jìn)行粘貼,Excel會(huì)提示“ ……Excel無(wú)法粘貼信息,原因是復(fù)制區(qū)域與粘貼區(qū)域形狀不同……”。遇到這種情況,可以用輔助列或VBA的方法來(lái)解決。
例如下圖所示,左側(cè)的“Sheet1”表的A、B兩列包含一些水果名稱及數(shù)量,現(xiàn)在需要用右側(cè)“Sheet2”表B1:B7區(qū)域中的數(shù)值(用紅色標(biāo)識(shí))替換“Sheet1”表篩選“蘋(píng)果”后的數(shù)量。
方法一:使用輔助列
這個(gè)方法是用排序法把需要替換的數(shù)據(jù)放在一起再進(jìn)行復(fù)制粘貼。即先添加一個(gè)“序號(hào)”輔助列,在其中輸入數(shù)字序號(hào),再用另一個(gè)輔助列對(duì)篩選后的數(shù)據(jù)進(jìn)行標(biāo)記,按第二個(gè)輔助列排序,再?gòu)?fù)制粘貼,最后對(duì)“序號(hào)”列排序還原原數(shù)據(jù)的排列順序。具體步驟如下:
1.先取消篩選,在“Sheet1”表的C2、C3單元格分別輸入數(shù)字“1”,“2”,選擇這兩個(gè)單元格后雙擊填充柄,將序號(hào)填充到C列。
2.篩選A列中的“蘋(píng)果”。在D列第二行的單元格中輸入公式:
=ROW()
然后向下填充公式到D列的所有可見(jiàn)單元格。
3.取消篩選,按D列排序,將全部“蘋(píng)果”的數(shù)量排在一起。
4.復(fù)制“Sheet2”表B1:B7數(shù)據(jù)粘貼到“Sheet1”表的B2:B8區(qū)域。
5.按序號(hào)列排序,還原原數(shù)據(jù)的排列順序。
最后刪除C、D兩列,完成替換。
方法二:VBA代碼
用下面的VBA代碼可直接把“Sheet2”表B列的數(shù)據(jù)粘貼到“Sheet1”表篩選后的區(qū)域。假如“Sheet1”表的數(shù)據(jù)區(qū)域?yàn)锳1:B20,“Sheet2”表B列需要復(fù)制粘貼的數(shù)量為7個(gè),先對(duì)“Sheet1”表A列篩選“蘋(píng)果”,然后按Alt+F11打開(kāi)VBA編輯器,在代碼窗口中輸入下列代碼并運(yùn)行即可。
Sub 粘貼時(shí)跳過(guò)隱藏行()
Dim Rng As Range
Set Rng = Range("B2:B20").SpecialCells(xlCellTypeVisible)
For Each cell In Rng
Worksheets("Sheet2").Cells(i + 1, 2).Copy
ActiveSheet.Paste Destination:=cell
Application.CutCopyMode = False
i = i + 1
If i = 7 Then End
Next
End Sub