Critique my filter/copy/visiblecells code...
This works pretty good, but seems to me to not be the "proper" use of .VisibleCells.
Where the code looks at all sheets in the array, column E, if the value in E has an "X" in the adjacent column D, then copy E value to sheet 1 column AG next open cell.
Is fairly fast, but only using 20 or so rows on each sheet.
Thanks,
Howard
Sub Many_To_One_Copy_1()
Dim i As Long
Dim MyArr As Variant
Dim lr As Long
Dim rngE As Range, c As Range
MyArr = Array("Sheet2", "Sheet3", "Sheet4", "Sheet5")
Application.ScreenUpdating = False
For i = LBound(MyArr) To UBound(MyArr)
With Sheets(MyArr(i))
.AutoFilterMode = False
lr = .Cells(.Rows.Count, 5).End(xlUp).Row
Set rngE = .Range("$D$1:$E$" & lr)
rngE.AutoFilter Field:=1, Criteria1:="=X"
.Range("$E$2:$E$" & lr).SpecialCells(xlCellTypeVisible).Copy
Sheets("Sheet1").Range("AG" & Rows.Count).End(xlUp)(2).PasteSpecial Paste:=xlPasteValues
rngE.AutoFilter
End With
Next 'i
Application.ScreenUpdating = True
End Sub
|