Я пытаюсь изменить это текстовое поле с помощью VBA:Введите значение в нестандартном HTML текстовое поле
<td id="ctl00_PlaceHolderMain_ctl00_PlaceHolderMain_ProfileEditorValueAboutMe" class="ms-authoringcontrols" valign="top" style="padding-left:10px;padding-right:10px;"><span class="ms-profilevalue"><span id="ctl00_PlaceHolderMain_ProfileEditorEditAboutMe"><DIV id="ctl00_PlaceHolderMain_ProfileEditorEditAboutMe_editableRegion" class="ms-rtestate-write ms-inputuserfield ms-long" contentEditable="true" InputFieldId="ProfileEditorEditAboutMe_hiddenRTEField" style="height:125px;overflow:scroll;background-color:white;"><p>text box content here</p></DIV></span>
<div class="ms-profiledescription" style="width: 386px; white-space:normal;">Please enter some details in the textbox</div>
</span>
<table border="0">
<tr>
<td></td>
</tr>
</table>
</td>
Вот VBA, который выполняет, как и ожидалось, кроме того, что текстовое поле не изменяется (либо на экране или когда форма сохраняется в случае щелчка):
Dim ie As InternetExplorerMedium
Set ie = New InternetExplorerMedium
ie.Visible = True
ie.Navigate "URL"
While ie.Busy Or ie.ReadyState <> READYSTATE_COMPLETE
DoEvents
Wend
Debug.Print ie.Document.getelementbyid("ProfileEditorEditAboutMe_hiddenRTEField").Value
ie.Document.getelementbyid("ProfileEditorEditAboutMe_hiddenRTEField").Value = "<p>123</p>"
Debug.Print ie.Document.getelementbyid("ProfileEditorEditAboutMe_hiddenRTEField").Value
ie.Document.all("Button1").Click
свойство .value
делает изменения, но текстовое поле не делает.
Буду благодарен за любые идеи. Как вы, наверное, можете сказать, я довольно новичок в веб-скриншоте VBA.
Спасибо. Я получаю объект, который не найден, и я считаю, что существует новый способ указания событий: https://msdn.microsoft.com/en-us/library/dn905219%28v=vs.85%29.aspx. Просто пытаюсь понять, как перевести это в новый синтаксис. – langbourne
Должно работать нормально. Как отмечалось в статье, «синтаксис createEvent()/initEvent() остается функциональным в это время для поддержки обратной совместимости» _. Какая строка вызывает ошибку? – Bond
Извините, если быть более точным, это ошибка «Объект не поддерживает это свойство или метод» в этой строке: Установите objEvent = ie.document.createEvent («HTMLEvents»). Может быть, потому, что я использую объект InternetExplorerMedium (который я должен по соображениям безопасности) – langbourne