0
votes

Ie manipulation dans les macros Excel

Je suis nouveau pour exceller les macros et j'essaie de remplir automatiquement la zone de texte et de sélectionner l'option de liste déroulante et de cliquer sur Soumettre.

Utilisation de macros J'ai navigué à une page et à partir de la page, je dois entrer le texte dans la zone de texte et sur la base de la suggestion, je dois sélectionner l'option. p>

Une fois l'option sélectionnée, je dois cliquer sur Continuer à l'aide de macros. P>

Voici le code actuel (j'ai essayé avec la ligne commentée mais cela ne fonctionne pas). P>

<input title="Search for a template" 
       class="change-template__search-input ng-pristine ng-untouched ng-valid" 
       role="combobox" 
       aria-expanded="false" 
       aria-owns="typeahead-258-8737" 
       aria-autocomplete="list" 
       type="text" 
       placeholder="Search for a template" 
       ng-enter="getRecommendedTemplates(template.search)" 
       ng-model="template.search" 
       typeahead="template as template for template in getTemplateList($viewValue)" 
       typeahead-focus-first="false" 
       typeahead-on-select="getRecommendedTemplates($item)" 
       typeahead-min-length="3">


1 commentaires

Y a-t-il une URL que nous pouvons tester?


3 Réponses :


0
votes

Je pense que vous devez rechercher à travers tous les éléments retournés par document.all (). Essayez de boucler à travers la collection qui est renvoyée. Ceci est beaucoup plus facile si le contrôle avait une carte d'identité, mais vous devrez vérifier chaque élément ayant un titre = "Rechercher un modèle". Une fois que vous avez trouvé l'article, vous pouvez définir le texte.

Je suggère de déboguer afin que vous puissiez voir ce qu'obnall renvoie, puis vous pouvez travailler à partir de là.


1 commentaires

Merci pour votre Respone Drhodge.J'ai essayé d'ajouter une ligne ci-dessous comme mentionné par Mariano, mais le texte ne remplit pas chaque élément de ie.document.all () si item.getattribute ("Titre") = "Recherche d'un modèle" Puis item.value = "Oradb" fin si le point suivant est-ce que je manque quelque chose?



0
votes

Bienvenue à. Si vous devez obtenir un élément, ledit Drhodge, en utilisant un itérateur et une sorte d'attribut d'identification est généralement suffisant. J'ai essayé cela avec Google il y a une minute:

SendKeys ("{ }")
Application.Wait Now + TimeSerial(0, 0, 1)
SendKeys ("{DOWN}"), True
Application.Wait Now + TimeSerial(0, 0, 1)
SendKeys ("{ENTER}"), True


2 commentaires

Merci pour votre REPONE MARIANO.J'ai essayé d'ajouter une ligne ci-dessous comme mentionné, mais le texte ne remplit pas chaque élément de ie.document.all () si item.getattribute ("Titre") = "Rechercher un modèle" puis élément .Value = "ORADB" fin si le point suivant est-ce que je manque quelque chose?


Salut philbin. Ce code HTML est-il téléchargé dans la navigation en temps réel, ou est-ce un fichier sur votre ordinateur? Êtes-vous sûr qu'il y a en fait un élément avec ce titre? Je viens de faire la même boucle avec votre extrait HTML exact (enregistré en tant que fichier) et avez-le de travailler; C'est pourquoi je suppose que quelque chose changeait sur le HTML que vous recherchez. Voici tout le sous: CODESHARE.IO/5ZKL8R < / a> Notez que ce n'est pas le code de production: cela pourrait échouer de plusieurs manières et ce n'est pas aussi efficace que possible.



0
votes

Vous pouvez essayer ce qui suit:

1) Focus et modifier P>

With ie.document.querySelector("[title='Search for a template']")
    .Focus
    .Value = "abcd"
    .FireEvent "onchange"
End With


0 commentaires