J'ai besoin de trouver et d'appuyer sur un bouton sur une page web à l'aide de VBA

J'ai écrit une macro qui ouvre une page web, trouver les spots que j'ai besoin de mettre les données dans la, et je veux la macro de frapper un pré-remplir le bouton, puis appuyez sur Ok.

Le code source d'une page pour le bouton:

<input type="text" size="30" maxlength="40" name="name" id="name">
<input type="button" value="Prefill" onclick="prefill()">

J'ai été à la recherche de réponses toute la semaine et je pense que j'ai une compréhension de base de la façon dont cela est censé fonctionner par l'exécution d'une boucle pour la recherche, mais j'ai pas de chance dans mon effort de réellement se présente au travail.

Quelqu'un peut me montrer la boucle qui va chercher ma page pour ce bouton?

Vous en remercie d'avance.

Demandé de code jusqu'à présent

Private Sub Populate_Click()
    Dim i As Long
    Dim IE As Object
    Dim objElement As Object
    Dim objCollection As Object

    Set IE = CreateObject("InternetExplorer.Application")

    IE.Visible = True
    IE.Navigate "website" 'make sure you've logged into the page

    Do
        DoEvents
    Loop Until IE.READYSTATE = 3

    Do
        DoEvents
    Loop Until IE.READYSTATE = 4
    ActiveSheet.EnableCalculation = False
    ActiveSheet.EnableCalculation = True
    Call IE.document.getelementbyid("name").SetAttribute("value", ActiveSheet.Range("b2").Value)
    Call IE.document.getelementbyid("aw_login").SetAttribute("value", ActiveSheet.Range("a2").Value)

    Set objCollection = IE.document.getElementsByTagName("input")
    i = 0
    While i < objCollection.Length
        If objCollection(i).Type = "button" And _
            objCollection(i).Name = "Prefill" Then
                Set objElement = objCollection(i)
        End If
        i = i + 1
    Wend
    objElement.Click
End Sub
Pouvez-vous poster le code que vous avez jusqu'à présent?
Je suis curieux de savoir si VBA peut être utilisé pour une fonction si étranger, donc je vais rester à l'écoute. Vous pouvez probablement supprimer la macros tag, et vous voudrez peut-être dire que la version d'Office que vous utilisez.
Selon la façon dont vous le faites, vous pouvez simplement appeler directement la fonction à l'intérieur du bouton, au lieu de simuler un clic sur le bouton. Si vous êtes à l'aide de la IHTMLDocument, vous pouvez utiliser document.ExecScript([javascripthere]).
A quoi sert le bouton? Si par exemple, le code HTML du bouton: <button onclick="thisAction()">Do Something</button>, alors vous pouvez utiliser document.ExecScript("thisAction()","javascript") à faire ce que le bouton est censé faire quand on clique dessus.
Dans le code HTML que vous avez posté, le bouton n'a pas de name attribut, mais il a une value. Dans votre boucle, vous êtes à la recherche d'une correspondance sur name au lieu de value.

OriginalL'auteur Michaeljwjr | 2013-06-18