vba获取网页表格数据库数据
‘壹’ excel VBA 网页数据抓取
首先打开Excel 2007工作表,点击想要把数据导入的位置,然后在菜单栏找到第五项"数据“,点击,在“获取外部数据”项下找到“自网站”并点击。
这时弹出来”新建 Web 查询“对话框,可以在“地址”一栏键入要添加数据的网页的地址。
添加完成后,点击“转到(G)”,下面会出来要添加网页的内容和黄色箭头,单击要选择的表旁边的黄色箭头,可以看到点击后黄色箭头变成绿色的对号,这表示内容已经选中了,然后单击“导入(I)”。
弹出来”导入数据“对话框,设置完成点击“确定”。
Excel表中显示“正在获取数据……”。
数据获取完成,之前选中的网页内容全部导入了Excel工作表里。
‘贰’ 谢谢你的回答。请问VBA抓取网页数据,能不能做到
可以,通过Excel——数据——自网站,录取一份代码,根据代码进行适当修改,提取所需数据。
举例:
Sub读取网页数据()
DimsAddressAsString
Fori=1To90
sAddress=Range("A"&Range("A:A").Rows.Count).End(xlUp).Offset(1,0).Address
WithActiveSheet.QueryTables.Add(Connection:=_
"URL;
"&i,Destination:=Range(sAddress))
.Name="page="&i
.FieldNames=True
.RowNumbers=False
.FillAdjacentFormulas=False
.PreserveFormatting=True
.RefreshOnFileOpen=False
.BackgroundQuery=True
.RefreshStyle=xlInsertDeleteCells
.SavePassword=False
.SaveData=True
.AdjustColumnWidth=True
.RefreshPeriod=0
.WebSelectionType=xlSpecifiedTables
.WebFormatting=xlWebFormattingNone
.WebTables="""listTable"""
.WebPreFormattedTextToColumns=True
.WebConsecutiveDelimitersAsOne=True
.WebSingleBlockTextImport=False
.WebDisableDateRecognition=False
.WebDisableRedirections=False
.RefreshBackgroundQuery:=False
EndWith
Nexti
EndSub
上面代码不全,网址部分被屏蔽了,参考:
http://..com/question/1990077664368754987
‘叁’ 做一个电子表格excel vba 实时获取网页数据
首先打开Excel 2007工作表,点击想要把数据导入的位置,然后在菜单栏找到第五项"数据“,点击,在“获取外部数据”项下找到“自网站”并点击。
‘肆’ Vba 如何获取Edge网页数据
将_页中表的数据输出到excel中。
下面会出来要添加网页的内容和黄色箭头,单击要选择的表旁边的黄色箭头,可以看到点击后黄色箭头变成绿色的对号,这表示内容已经选中了,然后单击导入。
‘伍’ 怎么用VBA或网络爬虫程序抓取网站数据
VBA网抓常用方法
1、xmlhttp/winhttp法:
用xmlhttp/winhttp模拟向服务器发送请求,接收服务器返回的数据。
优点:效率高,基本无兼容性问题。
缺点:需要借助如fiddler的工具来模拟http请求。
2、IE/webbrowser法:
创建IE控件或webbrowser控件,结合htmlfile对象的方法和属性,模拟浏览器操作,获取浏览器页面的数据。
优点:这个方法可以模拟大部分的浏览器操作。所见即所得,浏览器能看到的数据就能用代码获取。
缺点:各种弹窗相当烦人,兼容性也确实是个很伤脑筋的问题。上传文件在IE里根本无法实现。
3、QueryTables法:
因为它是excel自带,所以勉强也算是一种方法。其实此法和xmlhttp类似,也是GET或POST方式发送请求,然后得到服务器的response返回到单元格内。
优点:excel自带,可以通过录制宏得到代码,处理table很方便
。代码简短,适合快速获取一些存在于源代码的table里的数据。
缺点:无法模拟referer等发包头
也可以利用采集工具进行采集网页端的数据,无需写代码。
‘陆’ 求助用VBA抓取网页数据
应该实现不了吧,你只能是把你需要的所有数据都弄到表格中,然后筛选出你需要的数据,你不可能用excel链接到别人的数据库,那样你就成黑客了,如果你能进入对方的数据库 那还可以实现你的要求,但也有难度
‘柒’ excel vba如何读取网页中的某个数值。
用数据字典,dictionary value,item 。 value不允许重复。
Sub test()
Dim name()
Set dic = CreateObject("Scripting.Dictionary")
a = [a65536].End(xlUp).Row
For Each Cell In Worksheets("Sheet1").Range("A1:A" & a)
If Not dic.exists(Cell.Value) Then
dic.Add Cell.Value, Cell.Value
On Error Resume Next
End If
Next
name = dic.items
For i = 1 To dic.Count
Worksheets("Sheet1").Cells(i, 2) = name(i - 1)
Next
End Sub
‘捌’ vba如何抓取网页上的数据
代码:
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
‘玖’ 如何用VBA提取网上的表格数据进Excel
VBA提取网页数据有三种方式:
首选的是查询,编程最简单,选一个工作表新建一个网页查询,VBA每次刷新数据,就可以使用了。
另外两种是XML下载网页,IE对象下载网页,需要处理HTML代码,很麻烦的。
‘拾’ vba提取网页数据
下面的代码就可以:
OptionExplicit
Sub批量获取网页内容()
Dimhttp,Pols,Arr,i,u
Sethttp=CreateObject("Microsoft.XMLHTTP")
i=1
ForEachuInArray("url1","url2")
http.Open"POST",u,False
http.send""
Ifhttp.Status=200Then
Cells(i,1)=http.responseText
i=i+1
EndIf
Nextu
Sethttp=Nothing
EndSub
url1、url2就是你的网址,有多少写多少,每一个都要一http开头(然后是冒号和两个斜线)的完整地址。