Private Sub CommandButton1_Click()
Dim IE As Object
Dim i As Integer
i = 1
'打开网页:创建一个IE对象,然后给一些属性赋值。Visible是可见性,navigate是网页地址
Set IE = CreateObject('internetexplorer.application')
With IE
.Visible = True
.navigate 'http://hanyu.iciba.com/pinyin.html'
'等待网页完全加载
Do Until .ReadyState = 4
DoEvents
Loop
'拷贝汉字到网页文本框,然后点击转换按钮,并取出转换结果
Do While Sheets('sheet1').Cells(i 1, 1).Value <>''
'从IE.Document.all句柄中把页面上要使用的节点找出来。这里的方法是:
.document.all('source').Value 给以source为ID的文本框赋值
.document.all.tags('img')(1).Click 点击图片集合里的第二张图片
.document.all('to').Value 取出以to为ID的文本框内容
.document.all('source').Value = Sheets('sheet1').Cells(i 1, 1).Value
.document.all.tags('img')(1).Click
Do Until .ReadyState = 4
DoEvents
Loop
Sheets('sheet1').Cells(i 1, 2).Value = .document.all('to').Value
i = i 1
Loop
'关闭网页
.quit
End With
End Sub
代码解释:(见注释)
贴士:
1)VBA只能 *** 作IE浏览器,原因就一句话:都是微软家的产品嘛
2)要先引用Micorsoft Internet Controls
下面的代码就可以:
Option ExplicitSub 批量获取网页内容()
Dim http, Pols, Arr, i, u
Set http = CreateObject("Microsoft.XMLHTTP")
i = 1
For Each u In Array("url1", "url2")
http.Open "POST", u, False
http.send ""
If http.Status = 200 Then
Cells(i, 1) = http.responseText
i = i + 1
End If
Next u
Set http = Nothing
End Sub
url1、url2就是你的网址,有多少写多少,每一个都要一http开头(然后是冒号和两个斜线)的完整地址。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)