vba - if statement with getelementbyclass -
first off, relatively new programming. have been making myself familiar vba. have asked questions here before , far responses have been helpful trying luck again.
i going site: http://www.otcmarkets.com/stock-screener
i want script like:
if elementclassname("listingodd").innertext = "usa, nv" getelementsbyclassname("listingoddlistingodd whitespacenormal").innertext
i loop through , click next button behind html until completed : href="javascript:void(null);">next & gt;/a
any welcomed, have been searching through past questions , watching tutorials , not asking if not banging head on one. lot in advance
this code have tried, following error: "object doesnt support method" there lot commented out trial , error
sub t() dim ie object set ie = createobject("internetexplorer.application") ie.visible = false ie.navigate "http://www.otcmarkets.com/stock-screener" doevents loop until ie.readystate = readystate_complete dim doc htmldocument set doc = ie.document dim sdd string dim lnk variant sdd = trim(doc.getelementbyclassname("listingoddlistingodd whitespacenormal").innertext) 'if lnk.classame.innertext = "usa, nv" if lnk.innertext = "usa, nv" 'if elementclassname("listingodd")(0).innertext = "usa, nv" 'sdd 'sdd = trim(doc.getelementbyclassname("listingoddlistingodd whitespacenormal").innertext) msgbox sdd end if end sub
sorry spaghetti code, said new
i'm not clear on you're trying (and why not use handy "download all" link @ top of page?)
edited - place cell values on worksheet edit2 - clicking "next" link. edit3 - looped
this kind of thing total rabbit hole though.
sub tester() dim doc object dim ie object, nxt dim rng range, x integer set rng = thisworkbook.sheets("sheet1").range("a2") set ie = createobject("internetexplorer.application") ie.visible = true ie.navigate "http://www.otcmarkets.com/stock-screener" waitforload ie set nxt = getnext(ie) while not nxt nothing extracttablecontent ie, rng nxt.click waitforload ie set nxt = getnext(ie) loop end sub sub waitforload(ie object) do: doevents: loop until ie.readystate = 4 'readystate_complete application.wait + timeserial(0, 0, 3) end sub 'copy table content sub extracttablecontent(byref ie object, byref rng range) dim tablediv object, r object, rw object, x long set tablediv = ie.document.getelementbyid("stockscreenerresults") set r = tablediv.getelementsbytagname("table")(0).rows each rw in r x = 1 rw.cells.length rng.offset(0, x - 1).value = rw.cells(x - 1).innertext next x set rng = rng.offset(1, 0) next rw end sub 'find link takes next page... function getnext(ie object) object dim links, l object, rv object, cn object set links = ie.document.getelementsbytagname("a") each l in links if l.innertext "*next*" set rv = l exit end if next l set getnext = rv end function
Comments
Post a Comment