À l'aide de vba excel pour modifier la valeur d'un menu déroulant sur un site web
Je suis en train d'écrire une macro Excel à remplir un formulaire sur un site web. J'ai écrit le code qui peuplent les zones de texte assez facilement, et a trouvé le code de choisir la radio des cases, mais je vais avoir des problèmes avec le choix des informations à partir de menus déroulants.
Exemple, "Sexe":
La liste déroulante a trois options:
Select / Male / Female
J'ai essayé quelques variations sur ce:
doc.getElementsByName("xs_r_gender").Item(0).Value="Male"
...mais avec pas de chance.
C'est le code source web:
<td> <select name="xs_r_gender" id="xs_r_gender">
<option value="" selected>Select</option>
<option value="male">Male</option>
<option value="female">Female</option> </select></td>
Grâce.
OriginalL'auteur Marcus C | 2013-02-21
Vous devez vous connecter pour publier un commentaire.
doc.getElementById("xs_r_gender").selectedindex=1
semble faire l'affaire. (Où 1 représente mâle)
Bien que cela signifie que j'ai besoin de faire beaucoup de recherches pour déterminer quelle en est la valeur pour les éléments dans ma liste déroulante. (Assez facile pour le Sexe, où il y a seulement deux options, mais j'ai quelques zones de liste modifiables avec jusqu'à 50 options). Si quelqu'un connaît une solution plus rapide, ce serait sympa. Dans l'intervalle, les Mauvais de commencer à faire des tableaux!!!
grâce.
OriginalL'auteur Marcus C
Essayer de code ci-dessous en supposant doc = ie.document
doc.getElementById("xs_r_gender").value = "homme" Essayez ceci
OriginalL'auteur
L'utiliser dans votre code pour appeler la fonction ci-dessous.
Puis les utiliser pour votre fonction
OriginalL'auteur Lansman
Grâce Pile, fonctionne pour moi! Ma solution pour l'exploitation d'une IE HTML zone de liste déroulante liste déroulante s'est avéré être deux parties.
Partie 1 cliquez sur la liste déroulante, voici le code:
La partie 2 a été de choisir et cliquez sur la valeur (*le nom de l'élément modifié):
Voici les références:refs
OriginalL'auteur Longrifle
Vous pouvez essayer le
querySelector
méthode dedocument
pour appliquer un sélecteur CSS deoption
balise avec l'attributvalue = 'male'
:ou
OriginalL'auteur QHarr
Je suis désolé. Mais je pensais que les commentaires dans le code expliqué lui-même... ou pas? =D
OriginalL'auteur kazulius
Essayez ce code :
OriginalL'auteur kenneth
Vous pouvez faire quelque chose comme ceci:
doc.getElementsByName("xs_r_gender").Item(1).Selected=True
ou
doc.getElementById("xs_r_gender").selectedindex = 1
Où 1 est le mâle de l'option (dans les deux cas).
Si la dropbox doit déclencher un événement dans le but d'attirer votre choix, il est probable qu'il sera le "onchange" de l'événement. Vous pouvez tirer de la sorte:
doc.getElementById("xs_r_gender").FireEvent("onchange")
Si jamais vous voulez être en mesure de sélectionner une option en fonction de l'option de texte vous pouvez utiliser la fonction donnée par Lansman (ici) .
Basé sur la même réponse, si vous voulez appeler l'option par la valeur de la propriété (à la place du texte, il vous suffit de modifier la ligne
If xComboName.Options(x).Text = xComboValue Then
àIf xComboName.Options(x).value = xComboValue Then
).Cela devrait couvrir toutes les bases.
Ils n'ont pas besoin d'avoir un certain nombre explicitement attribuées. Le numéro que vous devriez utiliser correspond à la position de l'option (premier/deuxième/troisième/...). Alternativement, vous pouvez effectuer une itération sur toutes les options et de comparer les
.value
avec votre texte jusqu'à ce que vous trouver l'option que vous cherchez.OriginalL'auteur jony
Copie à partir d'Ici jusqu'à la dernière ligne:
OriginalL'auteur Govind Pandey