从访问 VBA 调用 Javascript 函数

Posted

技术标签:

【中文标题】从访问 VBA 调用 Javascript 函数【英文标题】:Calling Javascript function from access VBA 【发布时间】:2015-12-07 16:20:40 【问题描述】:

在访问 vba 时,我可以从网站检索 href 标记,但我发现 href 值触发的是 javascript 函数而不是链接。 javascript 函数将用户定向到我想要的链接。我的问题是:如何通过 VBA 触发 javacript 函数?

        Set ie1 = New InternetExplorer
        ie1.Navigate b.href 'Error here

        'wait for website to load
        Do: Loop While ie1.Busy Or ie1.ReadyState <> 4

        Set blist = html.getElementsByTagName("td")

        For Each c In blist

            address = c.innerText
            Debug.Print address

        Next c

编辑:b 看起来像这样&lt;a href="javascript:dspctry(71)"&gt;DNK&lt;/a&gt;

【问题讨论】:

你能提供实际的网址吗?或者至少发布触发链接的HTML代码? ...或查看this answer 是href还是原网站? 要点击链接的站点的 URL(javascript 函数)或该点击的 HTML 代码(函数) 刚刚在描述中添加了它 我知道我之前遇到过同样的问题 .. 见 this question 几个月前我问过,如果它解决了问题,请告诉我......页面上的任何一个答案...也许它不一样,但看起来很相似...你能发布javascript函数吗? 【参考方案1】:

解决了,我使用 IE.Document.parentWindow.excScript(b.href,"Javacript") 调用 javascript 函数,同时将其 IE.Document 设置为我当前的。

            'b.Click
            Call HTML.parentWindow.execScript(b.href, "Javascript")
            Do: Loop While ie.Busy Or ie.ReadyState <> 4

            Set blist = HTML.getElementsByTagName("td")

            For Each c In blist

                address = c.innerText
                If InStr(address, "Email: ") Then
                    Debug.Print address
                End If

            Next c

            Set HTML = Nothing
            Exit Function

【讨论】:

以上是关于从访问 VBA 调用 Javascript 函数的主要内容,如果未能解决你的问题,请参考以下文章

从 C# 访问 VBA 函数

从 Java 调用 Access 中的 VBA 函数

访问 VBA - 在网站上单击按钮或调用 javascript

从 Excel 调用 Access VBA 函数

64 位 Excel VBA 调用 JavaScript 函数

Excel VBA 用户定义函数:在工作表函数中获取单元格被调用