excel - Delete all rows in a column that don't match a value in another worksheet using VBA -
i learning vba , having trouble trying develop macro in workbook 2 worksheets. first worksheet named "para" , second named "report".
when enter number or text para!c6
(e.g. 76894
), vba code delete rows in column report!y:y
except 1 matches value in para!c6
.
i tried following code, not working:
sub keeponlyatsymbolrows() dim ws worksheet dim rng range dim lastrow long dim s integer s = worksheets("para").range("c6") set ws = activeworkbook.sheets("report") lastrow = ws.range("y" & ws.rows.count).end(xlup).row set rng = ws.range("a1:ar" & lastrow) ' filter , delete header row rng .autofilter field:=1, criteria1:="<>*s*" .offset(1, 0).specialcells(xlcelltypevisible).entirerow.delete end ' turn off filters ws.autofiltermode = false end sub
try code below.
if rng
column "a" column "ar", , want filter according column "y", need filter field:=25
(not field:=1
, column a).
also, filter according value of variable, need take variable name s
outside "
, criteria1:="<>" & s
.
code
option explicit sub keeponlyatsymbolrows() dim ws worksheet dim rng range dim lastrow long dim s variant s = worksheets("para").range("c6").value set ws = activeworkbook.sheets("report") ws lastrow = .range("y" & .rows.count).end(xlup).row set rng = .range("a1:ar" & lastrow) end ' filter , delete header row rng .autofilter field:=25, criteria1:="<>" & s, operator:=xland .offset(1, 0).specialcells(xlcelltypevisible).entirerow.delete end ' turn off filters ws.autofiltermode = false end sub
Comments
Post a Comment