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
Excel 貼上時無法避開隱藏的單元格,必須是連續的單元格。
有時在篩選後需要將其他區域中的連續行資料複製貼上到篩選區域,以替換篩選後的資料。由於篩選後的區域包含隱藏行,因而無法直接進行復制貼上,否則部分資料會貼上到隱藏行中。
方法一:使用輔助列
這個方法是用排序法把需要替換的資料放在一起再進行復制貼上。即先新增一個“序號”輔助列,在其中輸入數字序號,再用另一個輔助列對篩選後的資料進行標記,按第二個輔助列排序,再複製貼上,最後對“序號”列排序還原原資料的排列順序。具體步驟如下:
先取消篩選或隱藏,使用輔助列,如C1、C2單元格分別輸入數字“1”,“2”,選擇這兩個單元格後雙擊填充柄,將序號填充到C列。
再次篩選原來的資料。
在D列第二行的單元格中輸入公式:
=ROW()
然後向下填充公式到D列的所有可見單元格。
取消篩選,按D列排序。
對標記列排序把要貼上的資料排在一起
複製資料貼上到相應的區域。
重新按輔助列C列序號列排序,還原原資料的排列順序。
方法二:VBA程式碼
按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