在Excel中貼上時怎樣跳過隱藏行

素來發表於2016-06-25

  有時在篩選後需要將其他區域中的連續行資料複製貼上到篩選區域,以替換篩選後的資料。由於篩選後的區域包含隱藏行,因而無法直接進行復制貼上,否則部分資料會貼上到隱藏行中。而如果複製後對選擇篩選區域用“定位→可見單元格”的方法選擇可見單元格,再按“Ctrl+V”進行貼上,excel會提示“ ……Excel無法貼上資訊,原因是複製區域與貼上區域形狀不同……”。遇到這種情況,可以用輔助列或VBA的方法來解決。

  例如下圖所示,左側的“Sheet1”表的A、B兩列包含一些水果名稱及數量,現在需要用右側“Sheet2”表B1:B7區域中的數值(用紅色標識)替換“Sheet1”表篩選“蘋果”後的數量。

在Excel中貼上時怎樣跳過隱藏行 三聯教程
需要複製的連續行區域

  方法一:使用輔助列

  這個方法是用排序法把需要替換的資料放在一起再進行復制貼上。即先新增一個“序號”輔助列,在其中輸入數字序號,再用另一個輔助列對篩選後的資料進行標記,按第二個輔助列排序,再複製貼上,最後對“序號”列排序還原原資料的排列順序。具體步驟如下:

  1.先取消篩選,在“Sheet1”表的C2、C3單元格分別輸入數字“1”,“2”,選擇這兩個單元格後雙擊填充柄,將序號填充到C列。

新增序號輔助列

  2.篩選A列中的“蘋果”。在D列第二行的單元格中輸入公式:

  =ROW()

  然後向下填充公式到D列的所有可見單元格。

新增標記列

  3.取消篩選,按D列排序,將全部“蘋果”的數量排在一起。

對標記列排序把要貼上的資料排在一起

  4.複製“Sheet2”表B1:B7資料貼上到“Sheet1”表的B2:B8區域。

  5.按序號列排序,還原原資料的排列順序。

替換後的結果

  最後刪除C、D兩列,完成替換。

方法二:VBA程式碼

用下面的VBA程式碼可直接把“Sheet2”表B列的資料貼上到“Sheet1”表篩選後的區域。假如“Sheet1”表的資料區域為 A1:B20,“Sheet2”表B列需要複製貼上的數量為7個,先對“Sheet1”表A列篩選“蘋果”,然後按Alt+F11開啟VBA編輯器,在代 碼視窗中輸入下列程式碼並執行即可。

Sub 貼上時跳過隱藏行()
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

相關文章