2016-04-17 20 views
0

Ich möchte mit VBA auf eine Webseite Schaltfläche klicken. Ich habe mehrere Optionen ausprobiert (siehe Code unten), aber keiner von ihnen scheint zu funktionieren. Wenn anstelle von klicken Sie Ich verwende Fokus, es wählt die Schaltfläche, die ich drücken möchte, jedoch funktioniert der Klickbefehl nicht. Welche anderen Methoden kann ich ausprobieren?VBA zum Klicken auf eine Webseite Schaltfläche

Sub SubmitInfo() 

    Set IE = CreateObject("InternetExplorer.Application") 
     IE.Visible = True 
     IE.navigate "http://www.ecotransit.org/calculation.en.html" 

    Do While IE.readyState <> 4: DoEvents: Loop 
       Application.Wait (Now + TimeValue("0:00:02")) 

    ' 1st option 

    IE.document.getElementById("calculationBT").Click 

    ' 2nd option 

    IE.document.getElementsByClassName("formGreenButton")(0).Click 

    ' 3rd option 

    Set htmlColl = IE.document.getElementsByTagName("input") 
        Do While IE.document.readyState <> "complete": DoEvents: Loop 
         For Each htmlInput In htmlColl 
          If Trim(htmlInput.Type) = "submit" Then 
          htmlInput.Click 

           Exit For 
          End If 
         Next htmlInput 
    ' 4th option 

    Set htmlColl = IE.document.getElementsByTagName("input") 
        Do While IE.document.readyState <> "complete": DoEvents: Loop 
         For Each htmlInput In htmlColl 
          If Trim(htmlInput.Value) = "CALCULATE" Then 
          htmlInput.Click 

           Exit For 
          End If 
         Next htmlInput 

    End Sub 

Im Folgenden finden Sie die Schaltfläche HTML-Code, den ich

<input id="calculationBT" type="submit" class="formGreenButton" value="CALCULATE" /> 

Antwort

0
IE.document.getElementById("calculationBT").Click 

sollte die Arbeit tun, aber Sie müssen sicher sein, klicken mag, dass nur ein Vorkommen der ID ist, die sein sollte in diesem Fall.

+0

Ich habe dies in meinem Code versucht und hat nicht funktioniert. Kann ich etwas anderes als bisher im Code verwenden? (siehe Code oben). Danke für deine Antwort! – VBAExcel

+0

Sie müssen zuerst die Felder des Formulars ausfüllen und dann auf den Senden-Button klicken. – area9

+0

@ area9, ich habe auch die Felder ausgefüllt; es hat keine Relevanz. – VBAExcel

Verwandte Themen