Ввод данных в Интернете с использованием VBA - PullRequest
0 голосов
/ 09 июля 2020

У меня проблемы с использованием VBA для заполнения этого ввода. Я пробовал IE.Document.getelementsbyname("pienmr")(0).value, но он не работает.

Код:

<td class=champtd width="25%">
    <input onchange=checkPie(this) maxLength=10 size=22 value=165662533R 
           name=pienmr notwith="ecartsigle_checked" 
           txt_notwith="Pour pièce en écart de sigle, les seuls paramètres possibles sont l'approvisionneur et la famille">
</td>

Это внутренний веб-сайт компании, поэтому доступ к нему возможен только через vpn. У меня не было практики использовать VBA в Интернете, но у меня проблемы с этим.

Ps: Может ли кто-нибудь помочь мне предложить что-то для улучшения моих навыков VBA в доступе в Интернет?

Обновление: на самом деле все, что мне нужно, это изменить значение "165662533R" с помощью vba

Ответы [ 2 ]

0 голосов
/ 10 июля 2020

Вы имеете в виду, что вы видите новый текст, введенный в текстовое поле, но на сайте отображается какая-то ошибка?

Я вижу, что в поле ввода есть checkP ie (это ) в событии Onchange .

Возможно, вы не запускаете эту функцию из своего кода, вызывающего эту проблему.

Вот пример что вы можете попробовать обратиться, где показано, как запустить событие изменения после установки значения в поле ввода.

Sub demo()

    Dim URL As String
    Dim IE As Object
   
    Set IE = CreateObject("InternetExplorer.Application")
    IE.Visible = True
 
    URL = "https://example.com"

    IE.Navigate URL
     
    Do While IE.ReadyState = 4: DoEvents: Loop
    Do Until IE.ReadyState = 4: DoEvents: Loop
   
    Set ieEvent = IE.document.createEvent("HTMLEvents")
    ieEvent.initEvent "change", False, True
       
    IE.document.getelementsbyname("pienmr")(0).Value = "ABC"
    IE.document.all.Item("pienmr").dispatchEvent ieEvent
    
    Set IE = Nothing
   
End Sub

Вы можете попробовать протестировать этот код на своей стороне и сообщить нам, если у вас есть дополнительные вопросы.

0 голосов
/ 09 июля 2020

синтаксис: присвоить значение переменной

var x = document.getElementsByName ("pienmr") [0] .value;

см. https://www.w3schools.com/jsref/met_doc_getelementsbyname.asp

...