ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
300集Office 2010微视频教程 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 3365|回复: 12

[求助] 网页导入excel问题,请帮忙看下这段代码。

[复制链接]

TA的精华主题

TA的得分主题

发表于 2011-7-28 11:45 | 显示全部楼层 |阅读模式
请帮忙看下这段代码,从《分享网页数据下载与控制》帖子中获取并修改,with一句出现编译错误,缺少参数,我不太懂请帮忙改改。只要取得文章名和日期就行。谢谢了。网站数据是分页的,第一页和最后一页的网址都是一样的。
Private Sub CommandButton1_Click()
weburl = "URL;http://www.linyi.gov.cn/all/all.htm1?colid=282"
Strpost = "year_start=%202011&month_start=%201&date_start=%201&" & _
"hour_start=%200" & _
"&year_end=%202011&month_end=%207&date_end=%2030&hour_end=%200" & _
"&substation%5B%5D=00&R1=sortall&order=1&desckey="

With Exsheet.QueryTables.Add(Connection:=weburl, & _
Destination:=Exsheet.Range("a1"))
        .PostText = Strpost         'post字串
        .BackgroundQuery = True
        .WebSelectionType = xlSpecifiedTables
        .WebTables = "1"       '导入网页中的第一个表,也只有一个表格,网页上可能会包含很多个表格,表格让你组织网页内容。当在记事本里查看HTML源代码时,你会发现通过下述标签你很容易识别这些表格:<TABLE>(表格开始)和</TABLE>(表格结束)
        .WebFormatting = xlWebFormattingAll
        .RefreshStyle = xlOverwriteCells
        .AdjustColumnWidth = True
        On Error GoTo Wlcw
        .Refresh BackgroundQuery:=False      '发送命令?
        On Error GoTo 0
        .SaveData = True
    End With
'数据已写入到EXCEL
……

Wlcw:     '网络不通
    If P_cxzlly = "sccx" Or P_cxzlly = "qmcx" Then
        aa = MsgBox("网络不通,请手动打开网络试试!", vbOKOnly, "提示")
    End If
    Exit Sub

[ 本帖最后由 mantou008 于 2011-7-28 16:28 编辑 ]

TA的精华主题

TA的得分主题

发表于 2011-7-28 12:40 | 显示全部楼层
  1. Sub Macro1() '
  2.     With ActiveSheet.QueryTables.Add(Connection:= _
  3.         "URL;http://www.linyi.gov.cn/all/all.htm1?colid=282", Destination:=Range("A1" _
  4.         ))
  5.         .BackgroundQuery = True
  6.         .RefreshStyle = xlOverwriteCells
  7.         .AdjustColumnWidth = True
  8.         .WebSelectionType = xlSpecifiedTables
  9.         .WebTables = "8"
  10.         .Refresh BackgroundQuery:=False
  11.     End With
  12. End Sub
复制代码

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-7-28 16:25 | 显示全部楼层

回复 2楼 xmyjk 的帖子

谢谢xmyjk的热心帮助,但是上面那段代码执行之后,只有第一页的内容,不知道如何解决?

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-7-28 17:33 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2011-7-28 23:14 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
原帖由 mantou008 于 2011-7-28 17:33 发表
自己顶一下,请高手帮忙。


http://www.linyi.gov.cn/all/all.htm1?currpage=5&colid=282

把上述网址红色部分做一个变量,循环运行程序。

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-7-29 09:28 | 显示全部楼层
我不太懂,弄了半天不行,能不能帮我写出来?谢谢

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-7-29 11:40 | 显示全部楼层

回复 5楼 xmyjk 的帖子

我修改了下,不知道那个a1单元格要如何循环,才能使所有数据都出来。
Sub chaxun()
Dim i
For i = 1 To 60
With ActiveSheet.QueryTables.Add(Connection:="URL;http://www.linyi.gov.cn/all/all.htm1?currpage=" & i & "&colid=282", Destination:=Range("a1"))
        .BackgroundQuery = True
        .RefreshStyle = xlOverwriteCells
        .AdjustColumnWidth = True
        .WebSelectionType = xlSpecifiedTables
        .WebTables = "8"
        .Refresh BackgroundQuery:=false
    End With

Next i
End Sub

[ 本帖最后由 mantou008 于 2011-7-29 11:50 编辑 ]

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-7-29 12:03 | 显示全部楼层
已经解决,虽然还有点小问题,但是数据已经下来,谢谢上旋下弦月的帮助。另外不知道如何去除数据的链接?
Sub chaxun()
Dim i
Dim j
For i = 1 To 60
j = 1 + 25 * (i - 1)
With ActiveSheet.QueryTables.Add(Connection:="URL;http://www.linyi.gov.cn/all/all.htm1?currpage=" & i & "&colid=282", Destination:=Range("A" & j))
        .BackgroundQuery = True
        .RefreshStyle = xlOverwriteCells
        .AdjustColumnWidth = True
        .WebSelectionType = xlSpecifiedTables
        .WebTables = "8"
        .Refresh BackgroundQuery:=True
    End With

Next i
End Sub

[ 本帖最后由 mantou008 于 2011-7-29 12:06 编辑 ]

TA的精华主题

TA的得分主题

发表于 2011-8-1 01:06 | 显示全部楼层

另一种做法,代码如下,附件等候。

  1. Option Explicit
  2. Sub a()
  3. Dim ie1 As Object, dmt As Object, r As Object, i As Long, j As Long, n As Long, p As Integer

  4. 'Load UserForm1
  5. 'UserForm1.Show 0

  6. [a1].CurrentRegion.Clear
  7. Cells.NumberFormat = "@"
  8. Set ie1 = UserForm1.WebBrowser1

  9. For p = 1 To 164
  10.    n = [a65536].End(3).Row + 1
  11.    With ie1
  12.      .Navigate "http://www.linyi.gov.cn/all/all.htm1?currpage=" & p & "&colid=282" '网址
  13.      Do Until .ReadyState = 4
  14.        DoEvents
  15.      Loop
  16.      Set dmt = .Document
  17.      Set r = dmt.All.tags("table")(7).Rows
  18.      For i = 0 To r.Length - 2
  19.         For j = 0 To r(i).Cells.Length - 1
  20.            Cells(i + n, j + 1) = r(i).Cells(j).innerText
  21.         Next
  22.      Next

  23.      Set dmt = Nothing
  24.      Set r = Nothing
  25.    End With
  26. Next

  27. Set ie1 = Nothing
  28. [a1] = "标题": [b1] = "日期"

  29. [a1].CurrentRegion.Columns.AutoFit

  30. End Sub
复制代码

TA的精华主题

TA的得分主题

发表于 2011-8-1 01:11 | 显示全部楼层
试看看附件。

mantou008网页提取.rar

14.4 KB, 下载次数: 64

您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-4-27 04:46 , Processed in 0.047461 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表