excel vba - vba - find matches cells and copy it - optimizing code -
i have col d
(in sheet1 called students), col a
(in sheet2 called students too)and col b(in sheet2 called age).in cold
there lot of similar students name , sorting z.
i want loop col d
once , if exists match students name in cola
(sheet2), want copy in cold
(sheet1) b column(sheet2)that matches cola
(sheet2).
i sorted cold
because don't want loop every similar students name. mean: if student name (for example: andrew)in cold matches student name ('andrew')in cola
, copy colb
(matches col a- example andrew has 15 years old) in cold
(sheet1). , if string 'andrew' repeated in cold
(i found in cells), don't loop again colb
(sheet2), copy value first string.
for example:
(sheet1)
cold: students: row1: andrew row2: andrew row3: andrew row4: andrew row5: andrew row6: andrew row7: ben row8: ben row9: edoardo row10: helen row11: leonardo row12: leonardo row13: robert rown: ..
(sheet2)
students: colb: age: row1: michael 16 row2: timoth 20 row3: andrew 15 row4: edoardo 19 row5: ben 13 row6: robert 24 row7: helen 17
what want:
(sheet1)
cold: students: row1: 15 row2: 15 row3: 15 row4: 15 row5: 15 row6: 15 row7: 13 row8: 13 row9: 19 row10: 17 row11: 0 row12: 0 row13: 24 rown: ..
i have code finds matched students name , put age in col d
(sheet1):
set rngsearch = sheets("sheet1").range("d:d") each rngsearch in drng set rngfound = arng.find(what:=rngsearch, lookin:=xlvalues, lookat:=xlwhole, searchorder:=xlbyrows, searchdirection:=xlnext, matchcase:=false, searchformat:=false) 'if studentname found: if not rngfound nothing rngsearch.offset(0, 0) = rngfound.offset(0, 1) else rngsearch.offset(0, 0) = "-" end if next
can me optimize code, please?
Comments
Post a Comment