You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VBA网页抓取获取SubNav7_1下a标签href属性报运行时错误13求解

解决方法

错误原因

  • 你通过getElementById("SubNav7_1")获取到的是<li>列表元素,href属性属于该li节点内部嵌套的<a>子元素,直接对li元素取href属性无法得到正确值,触发类型不匹配的运行时错误13
  • 变量link为字符串类型,不能使用Set关键字赋值,Set仅用于给对象类型的变量赋值
  • 获取到的href为相对路径,需要拼接站点域名才能得到完整可访问的URL

修正后代码

Public Sub GetContents()
    Dim XMLReq As New MSXML2.XMLHTTP60
    Dim HTMLDoc As New MSHTML.HTMLDocument
    Dim liNode As MSHTML.HTMLLIElement
    Dim link As String
    ' 基础域名用于拼接相对路径
    Const baseDomain As String = "https://echa.europa.eu"
    
    ' 发送HTTP请求获取页面内容
    XMLReq.Open "Get", "https://echa.europa.eu/registration-dossier/-/registered-dossier/15460", False
    XMLReq.send
    HTMLDoc.body.innerHTML = XMLReq.responseText
    
    ' 先判断目标节点是否存在,适配无毒理学信息板块的场景
    Set liNode = HTMLDoc.getElementById("SubNav7_1")
    If Not liNode Is Nothing Then
        ' 获取li下的a标签,提取href属性后拼接为完整链接
        link = baseDomain & liNode.getElementsByTagName("a")(0).getAttribute("href")
        Debug.Print link
    Else
        Debug.Print "无有毒理学信息"
    End If
End Sub

运行结果

执行后控制台会输出你期望的完整链接:
https://echa.europa.eu/registration-dossier/-/registered-dossier/15460/7/1

内容的提问来源于stack exchange,提问作者Nick

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.13 04:51:03