VBA网页自动化:如何获取指定ID的span标签内文本?
搞定VBA网页自动化提取文本到Excel的问题
嘿,我来帮你解决这个提取网页文本到Excel的问题!你现在的代码没拿到结果,主要是两个小问题在搞鬼:
1. 元素定位多做了无用功
你已经用getElementById("ctl00_ContentPlaceHolder1_lblMsg")精准定位到了那个红色提示的span元素,结果又画蛇添足地调用了getElementsByTagName("span")(0)——这相当于在已经找到的span里面再找子span,可你的HTML里这个span根本没有子元素,自然拿不到内容啦。
2. Excel单元格地址的语法错了
代码里的Range("cs&y")写法不对,VBA里的字符串连接符&不能放在引号里面,得写成Range("CS" & y)(这里假设y是你之前定义的行号变量哈)。
修正后的完整代码
' 先定位目标元素 Dim targetMsgElement As Object Set targetMsgElement = ie.document.getElementById("ctl00_ContentPlaceHolder1_lblMsg") ' 先判断元素是否存在,避免运行时报错 If Not targetMsgElement Is Nothing Then ' 把文本写入Sheet3的对应单元格 ThisWorkbook.Sheets("Sheet3").Range("CS" & y).Value = targetMsgElement.innerText ' 如果想去掉末尾的句号,就换成下面这行: ' ThisWorkbook.Sheets("Sheet3").Range("CS" & y).Value = Left(targetMsgElement.innerText, Len(targetMsgElement.innerText) - 1) Else MsgBox "网页上没找到目标提示元素哦!" End If
额外小提醒
别忘了确保你的ie对象已经完全加载好网页再去提取元素,不然也可能拿不到内容,可以加一段等待加载的代码:
' 等待网页加载完成 Do While ie.Busy Or ie.ReadyState <> 4 DoEvents Loop
内容的提问来源于stack exchange,提问作者Dev
相关产品推荐
相关产品推荐

