2016-03-27 17 views
2

ボタンのすべてのボタンが同じクラス名を持ち、ボタンの唯一の差異部分が「データ・ドウジョイント・アタッチ・ポイント」であるウェブサイトがあります。Excel VBA - ボタンの名前が同じ場合にボタンをクリック

このボタンをクリックするか、そのフィールドを選択して値を入力しようとしています。このような

<div class="btn btn-default" type="button" data-dojo-attach-point="searchAddress">Search</div> 

<div class="btn btn-default" type="button" data-dojo-attach-point="buildToAddress">Build to Address</div> 

すなわち

Set element = .document.getElementsByClassName("btn btn-default") 
element.Item(0).Click 

は、誰もが私は正しいボタンをクリックして選択することができます方法を知っていますか?

ありがとうございます!

+1

'getAttribute(" data-dojo-attach-point ")'を試してください。 – Comintern

答えて

1

ここは例です。

<html> 
    <title>test</title> 
    <body> 
     <div class="btn btn-default" type="button" data-dojo-attach-point="searchAddress">Search</div> 
     <div class="btn btn-default" type="button" data-dojo-attach-point="buildToAddress">Build to Address</div> 
    </body> 
</html> 

、以下のコード打ち上げ:私はC:\tmp.htmを保存したあなたは即時ウィンドウobjNode.innerTextで見ることができるように

Sub Test() 

    Dim colNodes As Object 
    Dim objNode As Object 
    Dim strTarget As String 

    strTarget = "buildToAddress" 
    With CreateObject("InternetExplorer.Application") 
     .Navigate "file://C:\tmp.htm" 
     .Visible = True 
     Do While .Busy Or Not .readyState = 4: DoEvents: Loop ' wait IE 
     Do Until .document.readyState = "complete": DoEvents: Loop ' wait document 
     Set colNodes = .document.getElementsByClassName("btn btn-default") 
     For Each objNode In colNodes 
      If objNode.getAttribute("data-dojo-attach-point") = strTarget Then Exit For 
     Next 
     If Not objNode Is Nothing Then 
      Debug.Print objNode.innerText ' "Build to Address" 
      objNode.Click 
     End If 
     .Quit 
    End With 

End Sub 

data-dojo-attach-point="buildToAddress"を有するノードをターゲットに対応する「アドレスビルド」です。

+0

完璧に動作します!どうもありがとうございました! – nonexistence

関連する問題