从网站上提取一张图 table
Extract one figure from website table
我目前正在尝试使用 VBA 来抓取某个网站上特定 table 中的特定人物。下面是我浏览器中 检查元素 面板围绕它的 HTML 代码。
<tr class="cmeRowBandingOff cmeTableRowHighlight">
<th scope="row">MAR 15</th>
<td>2056.50</td>
<td>2062.50</td>
<td>2042.25</td>
<td>2043.25</td>
<td><span>-12.50</span></td>
<td>2044.00</td>
<td class="cmeTableRight">1,351,989</td>
<td class="cmeTableRight">2,701,326</td>
</tr>
我编写了 VBA 代码,它将提取整个 table,从 "MAR 15" 一直到“2,701,326” - 但是我只想提取数字“2044.00 " 放入 excel 中的 cell/message 框。
我目前的代码如下:
Private Sub CommandButton1_Click()
Dim IE As Object
' Create InternetExplorer Object
Set IE = CreateObject("InternetExplorer.Application")
' You can uncoment Next line To see form results
IE.Visible = False
' URL to get data from
IE.Navigate "http://www.cmegroup.com/trading/equity-index/us-index/" _
& "e-mini-sandp500_quotes_settlements_futures.html"
' Statusbar
Application.StatusBar = "Loading, Please wait..."
' Wait while IE loading...
Do While IE.Busy
Application.Wait DateAdd("s", 5, Now)
Loop
Application.StatusBar = "Searching for value. Please wait..."
Dim dd As String
dd = IE.Document.getElementsByClassName("cmeRowBandingOff")(0).innerText
MsgBox dd
' Show IE
IE.Visible = True
' Clean up
Set IE = Nothing
Application.StatusBar = ""
End Sub
我知道我需要改变这个:
dd = IE.Document.getElementsByClassName("cmeRowBandingOff")(0).innerText
但不确定如何去做。
有人可以帮我修改 VBA 代码,让它自己得到 2044.00 的结果吗?
类似于:
Dim rw, dd
Set rw = IE.Document.getElementsByClassName("cmeRowBandingOff")(0)
dd = rw.getElementsByTagName("td")(5).innerText
'or
dd = rw.childNodes(6).innerText
'or
dd = rw.Cells(6).innerText
我目前正在尝试使用 VBA 来抓取某个网站上特定 table 中的特定人物。下面是我浏览器中 检查元素 面板围绕它的 HTML 代码。
<tr class="cmeRowBandingOff cmeTableRowHighlight">
<th scope="row">MAR 15</th>
<td>2056.50</td>
<td>2062.50</td>
<td>2042.25</td>
<td>2043.25</td>
<td><span>-12.50</span></td>
<td>2044.00</td>
<td class="cmeTableRight">1,351,989</td>
<td class="cmeTableRight">2,701,326</td>
</tr>
我编写了 VBA 代码,它将提取整个 table,从 "MAR 15" 一直到“2,701,326” - 但是我只想提取数字“2044.00 " 放入 excel 中的 cell/message 框。
我目前的代码如下:
Private Sub CommandButton1_Click()
Dim IE As Object
' Create InternetExplorer Object
Set IE = CreateObject("InternetExplorer.Application")
' You can uncoment Next line To see form results
IE.Visible = False
' URL to get data from
IE.Navigate "http://www.cmegroup.com/trading/equity-index/us-index/" _
& "e-mini-sandp500_quotes_settlements_futures.html"
' Statusbar
Application.StatusBar = "Loading, Please wait..."
' Wait while IE loading...
Do While IE.Busy
Application.Wait DateAdd("s", 5, Now)
Loop
Application.StatusBar = "Searching for value. Please wait..."
Dim dd As String
dd = IE.Document.getElementsByClassName("cmeRowBandingOff")(0).innerText
MsgBox dd
' Show IE
IE.Visible = True
' Clean up
Set IE = Nothing
Application.StatusBar = ""
End Sub
我知道我需要改变这个:
dd = IE.Document.getElementsByClassName("cmeRowBandingOff")(0).innerText
但不确定如何去做。
有人可以帮我修改 VBA 代码,让它自己得到 2044.00 的结果吗?
类似于:
Dim rw, dd
Set rw = IE.Document.getElementsByClassName("cmeRowBandingOff")(0)
dd = rw.getElementsByTagName("td")(5).innerText
'or
dd = rw.childNodes(6).innerText
'or
dd = rw.Cells(6).innerText