2016-07-06 3 views
0

Я пытался извлечь ячейку из таблицы HTML в ячейку excel с помощью функции. таблица выглядит так:Вставка ячейки таблицы HTML в ячейку листа excel без id

    | 1Q | 2Q | 3Q | 
     income | 23 | 34 | 22 | 
     expenses | 11 | 19 | 10 | 
            . 
            . 
            . 

я не могу получить элементы по идентификатору, так что я создал две петли для поиска элемента с помощью элемента. код может найти элементы (в моем случае слово «расходы» col1 row2), но я не знаю, как получить значение ячейки вправо (11 в данном случае)

Dim IE As Object 
Dim doc As Object 
Dim colTR As Object 
Dim colTD As Object 
Dim tr As Object 
Dim td As Object 
Set IE = CreateObject("InternetExplorer.Application") 

IE.Visible = True 
IE.Navigate "www.mywebpage.com" 

Do Until IE.ReadyState = 4 
    DoEvents 
Loop 

Set doc = IE.Document 

Set colTR = doc.GetElementsByTagName("TR") 
For Each tr In colTR 
    Set colTD = tr.GetElementsByTagName("TD") 
    For Each td In colTD 
     If td.innertext = "expenses" Then 
     TheValueIWant = tr.item(1).innertext 
     End If 
    Next td 
Next tr 

IE.Quit 

Set IE = Nothing 
Set doc = Nothing 
Set colTR = Nothing 
Set colTD = Nothing 
Set td = Nothing 
Set tr = Nothing 

заранее спасибо

+0

11 - это еще больше столбцов. трудно сказать из ваших данных примера, но, возможно, 1 или 2 или более. вы можете сделать цикл с 'debug.print', чтобы понять это в первый раз, чем отрегулировать код соответственно. Таким образом, это будет 'tr.Cells (2) .innertext', если это был 2-й столбец. –

ответ

0

Скотт прав, нет причин перебирать все тс.

For Each tr In colTR 

    If tr.Cells(0).innerText = "expenses" Then 
     TheValueIWant = tr.Cells(1).innerText 
     MsgBox TheValueIWant 
    End If 

Next 
+0

потрясающий! он отлично работает –

+0

Счастливые помочь. Сэр! –

Смежные вопросы