Hello StackOverflow社区,
我有一个关于使用VBA来操纵IE的问题。
代码是关于以网站形式插入数据。到目前为止,一切都很顺利,除了以下“textarea”字段:
<textarea cols="1" rows="1" id="id_content" name="name_content" class="htmleditor">Content of the textarea is displayed here</textarea>
除了实际字段(来自上面提到的textarea类型)之外,还有一些来自类型按钮的元素,这些元素包含在htmleditor中。
我想要做的就是更改文本字段中的文本。因此,我希望能够写出不同的内容,而不是“在这里显示textarea的内容”。如果可能,也可以更改格式,例如一些部分粗体等。然后提交表格。
到目前为止我使用的代码:
Dim IEApp As SHDocVw.InternetExplorer
Set IEApp = New SHDocVw.InternetExplorer
Dim htmlDocument As htmlDocument
Dim objNotes As Object
Dim strNotes As String
With IEApp
IEApp.Visible = True
IEApp.Navigate "..."
Do: Loop Until IEApp.Busy = False
Do: Loop Until IEApp.document.ReadyState = "complete"
End With
Set objNotes = IEApp.document.getElementsByName("name_content")(0)
MsgBox objNotes.innerText ' 1)
MsgBox objNotes.innerHTML ' 2)
MsgBox objNotes.outerHTML ' 3)
MsgBox objNotes.Value ' 4)
objNotes.Value = "Hello World" 'Here I want to change the text in the textfield
MsgBox objNotes.innerText ' 5)
MsgBox objNotes.innerHTML ' 6)
MsgBox objNotes.outerHTML ' 7)
MsgBox objNotes.Value ' 8)
IEApp.document.forms(0).submit
MsgBox命令提供以下内容
1) <p>Content of the textarea is displayed here</p>
2) <p>Content of the textarea is displayed here</p>
3) <textarea name="name_content" class="htmleditor" id="id_content" aria-hidden="true" style="display: none;" rows="1" cols="1"><p>Content of the textarea is displayed here</p></textarea>
4) <p>Content of the textarea is displayed here</p>
5) <p>Hello World</p>
6) <p>Hello World</p>
7) <textarea name="name_content" class="htmleditor" id="id_content" aria-hidden="true" style="display: none;" rows="1" cols="1"><p>Hello World</p></textarea>
8) <p>Hello World</p>
但在成功提交表单后,页面不会更改。
到目前为止我尝试了什么:
知道还能做些什么吗?
答案 0 :(得分:0)
对于TextArea,不使用byid或byname,而是使用byTagName 我相信你必须使用函数 getElementsbyTagName