vba获取html代码数据,VBA获取网页表格数据

'获取中国地震网的地震信息

Option Explicit

'http://data.earthquake.cn/datashare/globeEarthquake_csn.html

Sub WebInquire()

Dim Url As String

Dim TableNumber As Integer

Dim Sht As Worksheet

Dim Rng As Range

'指定所需网页地址

Url = ""

'指定网页上的表格编号,自已在网页源里测试

'表格是从0开始,一般人工观察获取所需值

TableNumber = 5

'设置要显示网页内容的目标位置

Set Sht = ThisWorkbook.Worksheets(1)

Set Rng = Sht.Range("A1")

Sht.Cells.ClearContents

Call getTableInfor(Url, TableNumber, Rng)

End Sub

'获取网格程序

Sub getTableInfor(Optional Url As String, Optional TableNumber As Integer, Optional Rng As Range)

Dim IE As Object

Dim DocX, TableX, Row, TdGroup

Dim i%, j%

'定义为IE

Set IE = CreateObject("InternetExplorer.Application")

With IE

'调试时可设为显示

.Visible = True

.navigate Url

Do Until .readyState = 4

DoEvents

Loop

End With

'定义数据所在表格号码

Set TableX = IE.document.getElementsByTagName("table")(TableNumber)

'遍历此表的所有行,TD标签.

'在此说明一下TABLE相关属性,ROWS是行数,COLS是列数

'网页集合的计数是从0开始

For i = 0 To TableX.Rows.Length - 1

Set Row = TableX.Rows(i)

'遍历每行所有表格

For j = 0 To Row.Cells.Length - 1

'显示内容,注意在EXCEL里RANGE集合取表格位是从1开始,所以要加1

Rng.Cells(i + 1, j + 1) = Row.Cells(j).innerText

Next

Next

IE.Quit

End Sub

'/转码

Function BinToStr(arrBin, strChrs)

With CreateObject("ADODB.Stream")

.Type = 2

.Open

.Writetext arrBin

.Position = 0

.Charset = strChrs

.Position = 2

BinToStr = .Readtext

.Close

End With

End Function

参与评论 您还未登录,请先 登录 后发表或查看评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:数字20 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值