如何使用vba提取此代码 - 我需要单击下一步按钮

时间:2016-10-17 15:26:34

标签: html excel-vba vba excel

只是一个FYI ......我正在使用UserForm1.WebBrowser1.document.CurrentWindow.execScript("return doSubmit( this.form )").Click代码来提取

我需要点击下一个按钮,但元素ID不可用;下面是HTML代码

<input class="saveButton" onclick="return doSubmit( this.form )" type="BUTTON" value="Next">

我尝试使用下面的vba代码,但这对我不起作用

Dim CurrentWindow As HTMLWindowProxy: Set CurrentWindow = UserForm1.WebBrowser1.document.parentWindow

Call CurrentWindow.execScript("return doSubmit( this.form )")

如果需要进一步的操作,请告诉我

2 个答案:

答案 0 :(得分:0)

因此。点击没有ID的内容可以完成,你只需要知道如何找到你想要的东西。通常,我建议通过innertext单击元素作为一个很好的备份。

我知道你不可能分享这个网页,所以我不会问。但是,分配给此元素的标记是什么? “td”,“a”,“div”,“input”等等。

您可以使用此循环查找元素。

Dim Cnt As Variant
Dim oCell As Object
Cnt = 0  ' 
With oie.document.all
For Each oCell In .tags("a")  'This will change according to html tagging of element
    If oCell.value = "Next" Then 'If this "Next" value is unique. 
        oie.document.all.Item(cnt).click 'If doesn't trigger try nextline
        oie.document.all.item(cnt).fireevent ("onclick") 
    Exit For
    End If
Cnt = Cnt + 1
Next oCell
End With
Set oCell = Nothing

现在,为了让这个工作。启用“Microsoft Internet Controls”参考库。

根据HTML结构可能需要改变一些事情。

  1. oie.document.all.item'这可能会改为像oie.document.body。或者oie.document.forms(0).document.all。

  2. 就像我说的那样,需要更改“a”以查看分配给html中元素的每个标记。

    我希望这指出你正确的方向,如果你不想在每次运行宏时运行循环,你可以把它放到一个运行的函数中并在加载时分配所有元素。但有一件事一次:)

答案 1 :(得分:0)

您好,感谢您的快速转身!

代码未运行...

我按照我的要求尝试了您的代码并进行了必要的更改:

Dim Cnt As Variant
Dim oCell As Object
Cnt = 0
With UserForm1.WebBrowser1.document.all
For Each oCell In .tags("input")  
If oCell.Class= "saveButton" Then
UserForm1.WebBrowser1.document.all.Item(Cnt).Click
UserForm1.WebBrowser1.document.all.Item(Cnt).FireEvent ("onclick")
Exit For
End If
Cnt = Cnt + 1
Next oCell
End With
Set oCell = Nothing
End Function

只是一个FYI ...我正在使用userform来执行此任务。 正如你所说,我们需要一些独特的价值,所以我有“保存”按钮&#39;作为类和代码更改为&#39; oCell.class&#39; ... 有没有机会找到&#39; savebutton&#39;这是独一无二的吗?

非常感谢!