From: Vikram Dhemare on 30 Apr 2010 13:29 Hi, I use to get the web data on button click with the codes provided by Dave. No i would like to modify the codes as per users request. If the innertext value of 4th column of HTML table is already available in the extracted sheet then code should skip the row & go for next row of html table something like if ......... then exit for else. For ready reference some of the codes provinding here For Each mRow In mTable.Rows iCol = 0 For Each mCell In mRow.Cells rBase.Offset(iRow, iCol).Value = mCell.innerText iCol = iCol + 1 Next iRow = iRow + 1 End If Next If mCell.innertext value already available then exit for -- Thanks, Vikram P. Dhemare
From: joel on 30 Apr 2010 14:50 Indexing on the webpage starts at 0 so the 4th column is index 3 For Each mRow In mTable.Rows if mRow.cells(3) <> rBase.Offset(iRow, 4).Value then iCol = 0 For Each mCell In mRow.Cells rBase.Offset(iRow, iCol).Value = mCell.innerText iCol = iCol + 1 Next iRow = iRow + 1 End If Next mRow -- joel ------------------------------------------------------------------------ joel's Profile: http://www.thecodecage.com/forumz/member.php?u=229 View this thread: http://www.thecodecage.com/forumz/showthread.php?t=199824 http://www.thecodecage.com/forumz
From: Vikram Dhemare on 5 May 2010 13:06 Thanks Sir, But I am looking for the answer which can find the HTML Cells(1).innertext of each row, in a worksheet, if found then go for next HTML row if does not found then copy the value & paste in that sheet at last filled row. for Example: With Wks iRow = .Range("A" & Rows.Count).End(xlUp).Row End With End If For Each mRow In mTable.Rows With Wks Set rngC = Columns(1).Find(What:=mRow.Cells(1).innerText, _ LookAt:=xlPart, LookIn:=xlValues) End With If Not rngC Is Nothing Then Exit For Else iCol = 0 For Each mCell In mRow.Cells rBase.Offset(iRow, iCol).Value = mCell.innerText iCol = iCol + 1 End If Next iRow = iRow + 1 End If Next mRow Any help will be highly appreciable. -- Thanks, Vikram P. Dhemare "joel" wrote: > > Indexing on the webpage starts at 0 so the 4th column is index 3 > > > For Each mRow In mTable.Rows > if mRow.cells(3) <> rBase.Offset(iRow, 4).Value then > iCol = 0 > For Each mCell In mRow.Cells > rBase.Offset(iRow, iCol).Value = mCell.innerText > iCol = iCol + 1 > Next > iRow = iRow + 1 > End If > Next mRow > > > -- > joel > ------------------------------------------------------------------------ > joel's Profile: http://www.thecodecage.com/forumz/member.php?u=229 > View this thread: http://www.thecodecage.com/forumz/showthread.php?t=199824 > > http://www.thecodecage.com/forumz > > . >
From: joel on 5 May 2010 14:18 I ould reverse the procesess you are using. span the webpage then use find to locate the row and column of the worksheet. Something like this For Each mRow In mTable.Rows ColCount = 0 For Each mCol In mRow if ColCount = 0 then RowHeader = mCol Else ColHeader = mTable.Rows(0).cells(ColCount) With Wks Set rngC = .Columns(1).Find(What:=RowHeader, _ LookAt:=xlPart, LookIn:=xlValues) if not rngC is nothing then Set rngR = .Rows(1).Find(What:=ColHeader, _ LookAt:=xlPart, LookIn:=xlValues) .Cells(rngC.Row,rngR.column) = mCol.innertext end if End With End if ColCount = ColCount + 1 next mCol next mRow -- joel ------------------------------------------------------------------------ joel's Profile: http://www.thecodecage.com/forumz/member.php?u=229 View this thread: http://www.thecodecage.com/forumz/showthread.php?t=199824 http://www.thecodecage.com/forumz
From: Vicky on 7 May 2010 22:02 Not getting the desired report., Values returns blanks. -- Thanks, Vikram P. Dhemare "Vikram Dhemare" wrote: > Hi, > I use to get the web data on button click with the codes provided by Dave. > No i would like to modify the codes as per users request. If the innertext > value of 4th column of HTML table is already available in the extracted sheet > then code should skip the row & go for next row of html table something like > if ......... then exit for else. For ready reference some of the codes > provinding here > For Each mRow In mTable.Rows > iCol = 0 > For Each mCell In mRow.Cells > rBase.Offset(iRow, iCol).Value = mCell.innerText > iCol = iCol + 1 > Next > iRow = iRow + 1 > End If > Next > > If mCell.innertext value already available then exit for > > -- > Thanks, > Vikram P. Dhemare
|
Next
|
Last
Pages: 1 2 Prev: The VBA IDE will discard changes without warning Next: Which textbox am I in? |