2010-03-03 11 views
2

Je suis en train d'essayer d'écrire du code vba pour remplir des formulaires Web et cliquez sur les boutons pour moi. Je suis en boucle à travers les différents tags option sur la page pour sélectionner celui que je veux. Quand je l'atteins, je veux le sélectionner, mais je ne suis pas sûr de la syntaxe.Un HTMLInputElement est cliqué, et un HTMLOptionElement obtient

Dim htmlO As HTMLOptionElement 
For Each htmlO In Object.getElementByTagName("option") 
    If Trim(htmlO.value) = "INS" Then 
     htmlO.???? (click? select?) 
     Exit For 
    End If 
Next 

Voici le code HTML de la page Web:

<select gtbfieldid="40" id="menu" name="pv_choice"> 
<option selected="selected" value="ZZZ">Choose Menu Option 
</option><option value="BL_COMP">Blanket Companies 
</option><option value="CARR_SEARCH">Carrier Search 
</option><option value="PASSWORD">Change Password 
</option><option value="FED_REG">FMCSA Register 
</option><option value="FEEDBACK">Feedback 
</option><option value="HOME">Home Page 
</option><option value="INS">Insurance Filing 
</option><option value="OOS_LIST">Out Of Service Carriers 
</option></select> 

Je veux sélectionner l'option "INS".

Répondre

0

Ce qui a fonctionné à la fin était ...

Dim htmlO Comme HtmlSelect Élément
Set HTMLS = objdoc.getElementById ("menu")
htmlS.selectedIndex = 7

je devais faire référence à tout le menu et choisissez lequel choisir, ne pas sélectionner l'option individuelle.

1

Je ne l'ai pas utilisé VBA donc je présente mes excuses à l'avance, mais en supposant qu'il utilise la même structure pour les DOM que d'autres langues que je connais, essayez:

htmlO.selected= "selected" 

qui est de savoir comment je y parvenir en javascript :)

HTH

+0

Merci pour votre réponse ... mais cela ne fonctionne pas. L'option de menu n'est pas sélectionnée lorsque je fais htmlO.check. – dmr

+0

Désolé, je suis un doofus, je pensais que vous travailliez avec des cases à cocher. Essayez sélectionné = "sélectionné" Mise à jour dans ma réponse d'origine. – Gazillion

+0

J'ai essayé htmlO.select aussi et cela n'a pas fonctionné ... merci cependant :) – dmr

2
Dim StrFindText as string 
Dim htmlSelect As HTMLSelectElement 
Dim htmlItemOption As IHTMLOptionElement 

Set htmlSelect = Object.getElementById("menu") 
StrFindText = "INS" 

For i = 0 To htmlSelect.options.length - 1 
    htmlItemOption = htmlSelect.options(i) 
    ' UCase(htmlItemOption.text) = UCase(StrFindText) ' if find text options 
    If UCase(htmlItemOption.value) = UCase(StrFindText) Then 
     htmlItemOption.selected = True 
     Exit For 
    End If 
Next i