单击具有ID的HTML按钮,并通过VBA进行Onclick

时间:2018-11-23 11:33:47

标签: excel vba excel-vba web button

在此字段中输入数据后,我试图单击一个按钮:

<input name="termoBuscaUsuarioAprovador" id="termoBuscaUsuarioAprovador" 
style="width: 240px;" onkeydown="javascript:var keyCode = event.keyCode ? 
event.keyCode : event.which ? event.which : event.charCode; if(keyCode == 13) { 
document.getElementById('buscaResponsavel').focus(); }" onkeypress="return 
desabilita(this, event);javascript:var keyCode = event.keyCode ? event.keyCode 
: event.which ? event.which : event.charCode; if(keyCode == 13) { document.getElementById('buscaResponsavel').focus(); }" type="text" value="">

我正在使用它,它似乎可以工作:

IE.Document.getElementById("termoBuscaUsuarioAprovador").Value = "xxxxxxx" 'Name

但是,当我尝试单击下面的“搜索”按钮时,会出现一个简短的加载栏(就像我手动单击该按钮一样),但是它什么都没有显示,仍然空白。

<input name="buscaUsuarioAprovador" id="buscaResponsavel" style="width: 100px;" onclick="pesquisar_dadosUsuarioAprovador(document.getElementById('termoBuscaUsuarioAprovador').value)" type="button" value="Buscar">

我正在使用的使加载栏出现的代码是:

IE.Document.getElementById("buscaResponsavel").Click

我不知道是否由于“ onclick”而部分触发按钮,或者它是否与输入字段有关。

谢谢!

2 个答案:

答案 0 :(得分:1)

不浏览网页就很难回答您的问题,但是最常见的可能性是文本框值触发某些功能来执行,因此您不仅可以将值传递给文本框,还可以使用以下方法 方法1:

  set Zip =  IE.Document.getElementById("termoBuscaUsuarioAprovador")
  Zip.Value = "XXXXX"   
  Dim event_onChange As Object
  Set event_onChange = ie_Doc.createEvent("HTMLEvents")
  event_onChange.initEvent "keypress", True, False
  Zip.dispatchEvent event_onChange

如果不起作用,可以将“ Keypress”替换为“ keydown”

方法2:

   set Zip =  IE.Document.getElementById("termoBuscaUsuarioAprovador")
  Zip.Value = "XXXXX"
  Zip.FireEvent ("onkeypress")
or
  Zip.FireEvent ("onblur")

希望这会有所帮助

答案 1 :(得分:1)

您是否尝试过.FireEvent触发onclick?

AcceptTermsJwtPayload

也许是顺序:

IE.Document.getElementById("buscaResponsavel").FireEvent "onclick"