我有以下的Excel表:Excel VBA中篩選一列,然後複製區域集合中的每個項目匹配的行
Create Date Last Active Date Age
4/12/2017 5:54 4/17/2020 8:54 5 Days
4/19/2017 7:43 #N/A
4/12/2017 20:43 #N/A
4/1/2017 23:20 4/3/2017 6:54 10 Days
4/15/2017 22:20 #N/A
我想要做的是#N過濾年齡列/ A,然後將每個Last Active Date值複製到Create Date中的同一行。似乎很容易,但我不斷遇到問題。我使用SpecialCells(xlCellTypeVisible)屬性爲那裏的每個Area(非連續行)上的每個區域執行a操作,但是當我去複製行時,它會複製從「創建日期」列的第1行開始的行,這意味着所有的值都會出現重擊或者它會引發錯誤,說明範圍不匹配。這裏是我迄今爲止的代碼,我從另一個頁面中提到了如何做到這一點,但它似乎並不適用於我。
ActiveSheet.ListObjects("Table1").Range.AutoFilter Field:=8, Criteria1:= _
"#N/A"
Dim lngrow As Long
Dim FinalDest As Range
Dim Rng As Range
lngrow = Sheets("Sheet1").UsedRange.Rows.Count
Set FinalDest = Sheets("Sheet1").Range("C2:C" & lngrow)
Range("F2:F" & lngrow).Select
For Each Rng In Cells.SpecialCells(xlCellTypeVisible).Areas
Set FinalDest = FinalDest.Offset(Rng.Rows.Count)
Rng.Copy Destination:=FinalDest
Next Rng
Application.CutCopyMode = False
我該如何做到這一點?我想通過#N/A對其進行過濾,然後對於每個保留的過濾行,將最後活動日期中的值複製到創建日期(對於這些行將始終爲空),並確保將它們複製到適當的位置行,即如果第3行是第一個被過濾的行,則將該值複製到行3而不是第2行。
嗯...思維在盒子外---我能不能簡單地用#N/A對行進行排序,然後用#N/A過濾它以獲得連續的範圍,然後做一個簡單的複製和粘貼以避免大量額外的工作? – MattE