Jquery 如何触发事件以使用VBA更新网页?

Jquery 如何触发事件以使用VBA更新网页?,jquery,vba,excel,internet-explorer,Jquery,Vba,Excel,Internet Explorer,我一直在从事一个web自动化项目,当在其中一个搜索框中输入值时,我正在处理的当前网页会自动更新。但是,当我使用VBA代码在搜索框中输入值时,更新页面的事件不会触发。以下是迄今为止的代码: Set objIE = New InternetExplorer objIE.Visible = True objIE.navigate "https://www.hacienda.go.cr/tica/web/hdbaranc.aspx" Do Until objIE.Busy = False And ob

我一直在从事一个web自动化项目,当在其中一个搜索框中输入值时,我正在处理的当前网页会自动更新。但是,当我使用VBA代码在搜索框中输入值时,更新页面的事件不会触发。以下是迄今为止的代码:

Set objIE = New InternetExplorer
objIE.Visible = True
objIE.navigate "https://www.hacienda.go.cr/tica/web/hdbaranc.aspx"

Do Until objIE.Busy = False And objIE.readyState = 4
    DoEvents
Loop

objIE.document.getElementById("vVNCMINI").Value = partida & "00"
objIE.document.getElementById("vVNCMFIN").Value = partida & "00"
'Fire the event here
到目前为止,我尝试的是使用
。在搜索框上单击
,然后像这里建议的那样触发
onChange
事件:,但两者都不起作用。那么,你知道我能做什么吗


编辑:我尝试使用的是
应用程序.SendKeys
并在搜索框中发送enter。但是,这仅在
objIE.visible=True
时有效,我仅在调试时将其设置为
True
。我希望将其设置为
False
,但随后enter键将发送到excel工作簿,而不是IE。

请尝试以下示例。这是在我的IE11上通过手动触发事件实现的。我稍微整理了一下代码,并硬编码了值,因为我不确定变量
partida
来自哪里


编辑

如果onChange事件由于某种原因无法工作,请尝试下面的代码。它将改为提交表单数据。这将触发新的页面加载


代码

Private Sub SOExample()
    Dim IE As InternetExplorer
    Set IE = New InternetExplorer

    With IE
        .Visible = True
        .navigate "https://www.hacienda.go.cr/tica/web/hdbaranc.aspx"

        Do Until .Busy = False And .readyState = 4
            DoEvents
        Loop

        .Document.getElementById("vVNCMINI").Value = "1002"
        .Document.getElementById("vVNCMFIN").Value = "12400"

        'Submit the form
        .Document.getElementsByTagName("form")(0).submit
    End With

End Sub

您是否尝试过通过vba发送
帖子
或其他web查询,然后对网站进行编程以响应特定的
帖子
?我没有,而且我也不知道如何做,从未听说过类似的事情。你能给我举个例子吗?也许可以。啊,这个网站不在你的控制之下,是吗?如果您不知道网站本身的底层代码,那么让网站做您需要的事情可能非常困难。另外,我可以告诉你如何从vba发送POST请求,但一旦涉及到jquery,我就很不幸地不知所措了(因此是评论而不是回答)。不,不幸的是我不知道网站的代码。无论如何,谢谢你的主意!它实际上不能正常工作,有时当ie仍然打开时,它可以工作,但如果关闭,它就不能工作。该网站非常混乱,很难确定实际加载数据的事件。您可能需要建立对IE对象的新引用,然后再次触发该事件。谢谢您的回答!但对我来说还是不行。除了
SendKeys
,难道没有办法模拟按键之类的动作吗?也许像这样简单的事情可以奏效。什么不起作用?上面的代码应该可以工作。你是说当可见性设置为False时它不工作吗?更详细地了解哪些不起作用会有所帮助。您可以始终尝试Selenium,或使用webrequest。可见性设置为True,当我添加
.document.getElementById(“vVNCMFIN”).FireEvent(“onChange”)
时,仍然没有发生任何事情,事件不会被触发。我一直在尝试其他触发事件的方法,并触发不同的事件,如“按键”或“按键”,但没有成功。也许正如@UGP提到的,还有另一个事件加载了我丢失的数据。