excel vba - Delete row based on one letter -
need code. in (column c) have values mg01, mg02a, mg02b, mg02c. , in (column a) different values. code needs delete row if value in column "1" , in column c if finds letters @ end of text such b, c, d, e, ....
and "c" code not recognized mg02c please.
sub xdeleterowz() last = cells(rows.count, "a").end(xlup).row = last 1 step -1 if (cells(i, "a").value) = "1" , (cells(i, "c").value) = "*c*" cells(i, "a").entirerow.delete end if next end sub
this sounds more suited regular expression:
sub xdeleterowz() last = cells(rows.count, "a").end(xlup).row createobject("vbscript.regexp") .pattern = "mg\d{2}[a-z]" .ignorecase = false = last 1 step -1 if (cells(i, "a").value) = "1" , .test(cells(i, "c").value) cells(i, "a").entirerow.delete end if next end end sub
note expression requires value begin mg##. if start of value can different, replace line...
.pattern = "mg\d{2}[a-z]"
...with...
.pattern = ".+[a-z]"
... , match lowercase letter @ end. can limit specific letters changing range inside brackets. i.e., if it's 'a' through 'g', be:
.pattern = ".+[a-g]"
Comments
Post a Comment