ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[分享] 第一辑、网页:点击标签,翻页

  [复制链接]

TA的精华主题

TA的得分主题

发表于 2012-7-24 20:55 | 显示全部楼层
本帖已被收录到知识树中,索引项:网页交互
学习了~~

TA的精华主题

TA的得分主题

发表于 2012-7-28 07:24 | 显示全部楼层
这个要好好学习一下。
跟LIUCQA的一起收了。

TA的精华主题

TA的得分主题

发表于 2012-7-28 08:42 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2012-8-28 21:46 | 显示全部楼层
Sub 定位ExcelVBA程序开发_Excel_Home论坛()
    On Error Resume Next
    With CreateObject("internetexplorer.application")
        .Visible = True
        .navigate "http://club.excelhome.net/forum-2-1.html"
        Do Until .ReadyState = 4
            DoEvents
        Loop
        Debug.Print .Document.all.tags("a")(1).CloneNode
        Debug.Print .Document.all.tags("a")(1).href                '看起来,CloneNode和href差不多,其实是有差别的
        Debug.Print .Document.all.tags("a")(500).ScrollIntoView    '定位到第500个a元素(a标签)位置
        t1 = Timer
        Do Until Timer > t1 + 3                                    '这里等待3秒,是为了看看效果
            DoEvents
        Loop
        Debug.Print .Document.all.tags("a")(587).ScrollIntoView    '定位到第587个a元素(a标签)位置
    End With
End Sub

TA的精华主题

TA的得分主题

 楼主| 发表于 2012-8-28 21:52 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
下面的代码,要按 F8 才能看出效果:

Sub test()
    With CreateObject("InternetExplorer.Application")
        .navigate "http://club.excelhome.net/thread-874608-1-1.html"    '打开窗口
        Do Until .ReadyState = 4
            DoEvents
        Loop
        .Visible = 1      '窗口可见
        .Left = -5        '左侧
        .Top = -25        '顶部
        .Height = 860     '高度
        .Width = 1035     '宽度
        .MenuBar = 0      '取消菜单栏
        .addressbar = 0   '取消地址栏
        .Toolbar = 0      '取消工具栏
        .StatusBar = 0    '取消状态栏
        .resizable = 1    '允许用户改变窗口大小
        .Height = 400     '高度
        .Width = 500      '宽度
        .Left = 300       '左侧
        .Top = 300        '顶部
        For i = 3 To 3
            Debug.Print "-----------------"
            Debug.Print i
            Debug.Print "-----------------"
            Debug.Print .Document.all.tags("a")(i).onclick
            Debug.Print "-----------------"
            Debug.Print .Document.all.tags("a")(i).ID
            Debug.Print "-----------------"
            Debug.Print .Document.all.tags("a")(i).onmouseover
            Debug.Print "-----------------"
            Debug.Print .Document.all.tags("a")(i).href
            Debug.Print "-----------------"
            Debug.Print .Document.all.tags("a")(i).Title
            Debug.Print "-----------------"
        Next i
        .Quit
    End With
End Sub

TA的精华主题

TA的得分主题

发表于 2012-9-11 11:12 | 显示全部楼层
蓝天老师功力深厚啊  跟着学习了

TA的精华主题

TA的得分主题

发表于 2012-9-13 18:25 | 显示全部楼层
蓝天630902 发表于 2012-5-30 10:44
一个一个地找,岂不小看了vba?我们有更一般的办法:

Sub 更一般的办法()

Sub 更一般的办法()
  With CreateObject("InternetExplorer.Application")
      .Visible = True
      .Navigate "http://de.yusuan.com/index.html"
        Do Until .ReadyState = 4
            DoEvents
        Loop
        t1 = Timer
        Do Until Timer > t1 + 5
            DoEvents
        Loop
       Set r = .Document.All.tags("div")
       For i = 0 To r.Length – 1’div标签的个数
       Cells(i + 1, 1) = i
       Cells(i + 1, 2) = r(i).innerText '把第i个div标签的内容写入第i+1行,2列
       Next i
   End With
End Sub
运行到红色字段,无法运行下去,不支持该属性或方法。咋回事?

TA的精华主题

TA的得分主题

 楼主| 发表于 2012-9-13 19:02 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
cumulonimbus 发表于 2012-9-13 18:25
Sub 更一般的办法()
  With CreateObject("InternetExplorer.Application")
      .Visible = True

应该是没有问题

Sub 更一般的办法()
  With CreateObject("InternetExplorer.Application")
      .Visible = True
      .Navigate "http://de.yusuan.com/index.html"
        Do Until .ReadyState = 4
            DoEvents
        Loop
        t1 = Timer
        Do Until Timer > t1 + 5
            DoEvents
        Loop
       Set r = .Document.All.tags("div")
       For i = 0 To r.Length - 1
       Cells(i + 1, 1) = i
       Cells(i + 1, 2) = r(i).innerText
       Next i
   End With
End Sub

TA的精华主题

TA的得分主题

发表于 2012-9-13 19:14 | 显示全部楼层
蓝天630902 发表于 2012-9-13 19:02
应该是没有问题

Sub 更一般的办法()

奇怪,现在没错了。
这个文章真好,希望更多的人看到。

TA的精华主题

TA的得分主题

发表于 2012-9-13 20:14 | 显示全部楼层
蓝天630902 发表于 2012-5-31 18:37
也有不灵光的地方,比如说下面的网址:
http://www.tjcae.com/rtjsj/index.htm
但是,网页页面的源码里面 ...

但是,网页页面的源码里面,有一个iframe行内框架,这个框架的src(地址)为:“/ShareSubjectList/tradePublicInfo.jsp”也就是“http://www.tjcae.com/ShareSubjectList/tradePublicInfo.jsp”
用这个网址,按照上面的方法得出,“input”的“name”属性为“tradeDateInput”

Sub 天津文化艺术品交易所交易公开信息()
    On Error Resume Next
    With CreateObject("internetexplorer.application")
        .Visible = True
        .Navigate "http://www.tjcae.com/ShareSubjectList/tradePublicInfo.jsp"
        Do Until .ReadyState = 4
            DoEvents
        Loop
        .Document.All.tags("INPUT")(0).Value = "2012-05-28"
        .Document.All.tags("INPUT")(1).Click
    End With
End Sub
-----------------------------------------------
疑问:用这个网址只能搜到一个input,序号是0,哪来的序号为1的input呢?
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-5-19 18:00 , Processed in 0.030112 second(s), 6 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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