Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在VBA(Excel)中,如何在HTML/Javascript页面中单击此按钮?_Html_Vba - Fatal编程技术网

在VBA(Excel)中,如何在HTML/Javascript页面中单击此按钮?

在VBA(Excel)中,如何在HTML/Javascript页面中单击此按钮?,html,vba,Html,Vba,我已经绕这一圈很久了。这里的许多建议似乎很接近,但我无法让它们发挥作用 我可以打开页面、登录、填写各种框(这都是过滤过程的一部分) 然后我只需要点击“开始”按钮开始搜索 我试过“聚焦”和“点击”等的变体 我认为这个问题实际上是得到了正确的元素来关注和点击 需要按下的按钮的HTML代码为 <td class="XUIPromptEntry"><span class="minibuttonOn"><a href="javascript:void(null)" oncli

我已经绕这一圈很久了。这里的许多建议似乎很接近,但我无法让它们发挥作用

我可以打开页面、登录、填写各种框(这都是过滤过程的一部分)

然后我只需要点击“开始”按钮开始搜索

我试过“聚焦”和“点击”等的变体

我认为这个问题实际上是得到了正确的元素来关注和点击

需要按下的按钮的HTML代码为

<td class="XUIPromptEntry"><span class="minibuttonOn"><a href="javascript:void(null)" onclick="javascript:GFPDoFilters('d:dashboard~p:nsv29jv8c3s9l61e~s:o426k5n3d5ajovme~g:49ftldfknmmr1fg5',document.getElementById('saw_6428_5'),true);return false;">Go</a></span><div id="d:dashboard~p:nsv29jv8c3s9l61e~s:o426k5n3d5ajovme~g:49ftldfknmmr1fg5Scope" value="page"/></td>

我可以得到一个提示,我应该使用什么代码来点击它

请帮忙!我必须在每个周六和周日登录,通过Excel运行此报告,我希望我的周末回来

按照下面的要求,这是我迄今为止尝试过的代码(在其他宏中也能使用)

Set htmlDoc=.document
设置htmlColl=htmlDoc.getElementsByTagName(“输入”)
在htmlDoc.READYSTATE“完成”时执行:DoEvents:Loop
对于每个HTMLIN,输入htmlColl
如果Trim(htmlInput.Type)=“提交”,则
htmlInput。单击
退出
如果结束
下一个htmlInput
以
我还尝试了其他一些方法,包括

    Set link = Nothing
i = 0
While i < htmlDoc.Links.Length And link Is Nothing
    If htmlDoc.Links(i).innerText = "Go" Then Set link = htmlDoc.Links(i)
    i = i + 1
Wend
If Not link Is Nothing Then
    link.Focus
    link.Click
End If
Set link=Nothing
i=0
而我
但仍然没有乐趣(link.focus不起作用,因为它说它不可见)

(由OP在问题编辑中回答。转换为社区wiki答案。请参阅)

OP写道:

解决了

我使用“Innertext”来获取它-我遇到的问题是,一旦它找到一个并尝试单击它,它就会退出循环。但它出现了3次,因此,通过删除“出口”,它找到了一个真正有效的


你能发布你用来查找元素的代码吗?也许再多了解一点背景?如果不清楚您已经在做什么,很难说您需要更改什么。请调用
document.GetElementsByTagName(“a”)
-在返回的集合中循环,并查找具有innerText=“Go”的集合
    Set link = Nothing
i = 0
While i < htmlDoc.Links.Length And link Is Nothing
    If htmlDoc.Links(i).innerText = "Go" Then Set link = htmlDoc.Links(i)
    i = i + 1
Wend
If Not link Is Nothing Then
    link.Focus
    link.Click
End If