乔山办公网我们一直在努力
您的位置:乔山办公网 > excel表格制作 > 如何用VBA提取网上的表格数据进<em>Excel</em>-excel 读取网页数据,exce

如何用VBA提取网上的表格数据进<em>Excel</em>-excel 读取网页数据,exce

作者:乔山办公网日期:

返回目录:excel表格制作


Option Explicit '强制定义变量(如果有本句存于开始,则所有变量需定义)
Type DataInfo '类型DataInfo
'
End Type 'End类型
'
Public myDataInfo As DataInfo '公有的7a64e78988e69d83338myDataInfo类型为DataInfo
'
Public JS_Name As String '公有的JS_名称类型为字符串
Public objJS As Object '公有的objJS类型为对象
Public arr As Variant '公有的arr类型为Variant
Sub Main() '子程序Main()
'
Dim strRgStartName As String '起始单元格名称 '定义变量strRgStartName类型为字符串'起始单元格名称
Dim strRgEndName As String '结束单元格名称 '定义变量strRgEndName类型为字符串'结束单元格名称
Dim strTemp As String '定义变量strTemp类型为字符串
Dim strT() As String '定义变量strT()类型为字符串
Dim lngR As Long, lngC As Long '定义变量lngR类型为长整型值,lngC类型为长整型值
Application.Cursor = xlWait ' 应用程序的光标=xlWait
Application.ScreenUpdating = False ' 应用程序的屏幕刷新=False
GetBasicInfo '初始化数据 'GetBasicInfo'初始化数据
'如果无数据则退出
If myDataInfo.RecordCount = 0 Then '如果 myDataInfo的RecordCount=0 则执行
Application.Cursor = xlDefault ' 应用程序的光标=xlDefault
Application.ScreenUpdating = True ' 应用程序的屏幕刷新=True
MsgBox "无数据!", vbCritical '<消息框>:"无数据!",vbCritical
Exit Sub '退出子程序
End If 'If判断过程结束
strRgStartName = "A1" '从A1单元格开始 'strRgStartName="A1"'从A1单元格开始
strRgEndName = Cells(myDataInfo.RecordCount, myDataInfo.lngCols).Address(0, 0) 'strRgEndName=<单元格>坐标( myDataInfo的RecordCount, myDataInfo的lngCols )的Address(0,0)
Sheet1.UsedRange.ClearContents ' Sheet1的已使用区域的清除内容
arr = Sheet1.Range(strRgStartName & ":" & strRgEndName) 'arr= Sheet1的<单元格>区域(strRgStartName & ":" & strRgEndName)
'逐条读取
For lngR = 1 To myDataInfo.RecordCount '设定变量范围为lngR=1到 myDataInfo的RecordCount
strTemp = objJS.eval(JS_Name & ".data[" & lngR - 1 & "]") 'strTemp= objJS的eval(JS_名称 & ".data[" & lngR-1 & "]")
strT = Split(strTemp, ",") 'strT=<分割字符串>(strTemp,",")
For lngC = 0 To UBound(strT) '设定变量范围为lngC=0到<数组上限>(strT)
arr(lngR, lngC + 1) = strT(lngC) 'arr(lngR,lngC+1)=strT(lngC)
Next '下一个
Next '下一个
'填充
Sheet1.Range(strRgStartName & ":" & strRgEndName) = arr ' Sheet1的<单元格>区域(strRgStartName & ":" & strRgEndName)=arr
Application.Cursor = xlDefault ' 应用程序的光标=xlDefault
Application.ScreenUpdating = True ' 应用程序的屏幕刷新=True
End Sub '子程序结束

VBA提取网页数据有三种方式:
首选的是查询,编程最简单,选一个工作表新建一个网页查询,VBA每次刷新数据,就可以使用了。
另外两种是XML下载网页,IE对象下载网页,需要处理HTML代码,很麻烦的。
直接复制就行了。
这个用VBA解决不了,只能用按键精灵,可以实现。

1、首先打开Excel 2007工作表,点击想要把数据导入的位置,然后在菜单栏找到第五项'数据“,点击,在“获取外部数据”项下找到“自网站”并点击。
2、这时弹出来”新建 Web 查询“对话框,可以在“地址”一栏键入要添加数据的网页的地址。
3、添加完成后,点击“转到(G)”,下面会出来要添加网页的内容和黄色箭头,单击要选择的表旁边的黄色箭头,可以看到点击后黄色箭头变成绿色的对号,这表示内容已经选中了,然后单击“导入(I)”。
4、弹出来”导入数据“对话框,设置完成点击“确定”。
5、Excel表中显示“正在获取数据……”。
6、数据获取完成,之前选中的网页内容全部导入了Excel工作表里。

相关阅读

  • <em>excel</em>提取一个<em>网页</em>里面的<

  • 乔山办公网excel表格制作
  • Excel 怎样提取网页的多页数据" src="/uploads/tu/564.jpg" style="width: 400px; height: 267px;" />你好,直接用Excel不行的,你可以下载软件“网页自动操作软件”,自动查询将多个结果保存到一个数据
关键词不能为空
极力推荐

ppt怎么做_excel表格制作_office365_word文档_365办公网