作者:绿色风
分类:
时间:2022-08-17
浏览:114
楼主 kevinchengcw |
Q: 如何用vba代码查找网页中含有指定关键字的表格序号? A: 代码如下:
- Sub test()
- Dim Reg As Object, mMatch, Str$, KeyWord$, Found As Boolean
- Set Reg = CreateObject("vbscript.regexp") '创建正则项目
- With Reg
- .Global = True '设定全局有效
- .MultiLine = True '设定多行有效
- .ignorecase = True '设定忽略大小写
- .Pattern = "\<TABLE[\s\S]*?(?=\<TABLE)" '设定正则匹配规则
- End With
- N = 1 '表计数
- KeyWord = "挂牌代码" '设定关键字,注意要找表内特殊字,其他表不可能存在的字为准
- Found = False '设定是否找到的逻辑值,否则最后如果没找到也会得到表号计数
- With CreateObject("Msxml2.XMLHTTP") '创建网页项目
- Url = "http://www.sse.com.cn/sseportal/webapp/datapresent/ZQSearch1Act?
- reportName=BizCompZQSearchRpt&BOND_CODE=&BOND_NAME=&page_flag=1" '打开网址
- .Open "GET", Url, False '设置网页请求内容
- .Send '发送请求
- Str = StrConv(.responseBody, vbUnicode) '获取网页源代码内容
- If Reg.test(Str) Then '判断是否匹配到内容,如果匹配到则执行下述代码
- For Each mMatch In Reg.Execute(Str) '循环各个匹配项
- If mMatch.Value Like "*" & KeyWord & "*" Then '如果含有关键字,则
- Found = True '设置找到逻辑值为真
- Exit For '退出循环
- End If
- N = N + 1 '表计数值加1
- Next mMatch
- If Found = True Then '如果找到关键字,则显示表号
- MsgBox "表号是:" & N
- Else '否则显示未找到表
- MsgBox "未找到关键字对应的表"
- End If
- Else '如果未匹配到内容,则显示提示信息
- MsgBox "链接中无表格"
- End If
- End With
- Set Reg = Nothing '清空正则项目
- End Sub
以上代码对于导入非固定序号的网页表格很有用。 |
2楼 水星钓鱼 |
Open\Send\Response三部曲,学习下。 |
免责声明
有感于原ExcelTip.Net留存知识的价值及部分知识具有的时间限定性因素,
经与ExcelTip.Net站长Apolloh商议并征得其同意,
现将原属ExcelTip.Net的知识帖采集资料于本站点进行展示,
供有需要的人士查询使用,也慰缅曾经的论坛时代。
所示各个帖子的原作者如对版权有异议,
可与本人沟通提出,或于本站点留言,我们会尽快处理。
在此,感谢ExcelTip.Net站长Apolloh的支持,感谢本站点所有人**绿色风(QQ:79664738)**的支持与奉献,特此鸣谢!
------本人网名**KevinChengCW(QQ:1210618015)**原ExcelTip.Net总版主之一