VBA操纵IE:正确使用SendKeys,等待不可能

时间:2016-07-22 12:35:35

标签: html excel forms vba internet-explorer

Hello StackOverflow社区,

我有一个关于使用VBA来操纵IE的问题。

代码是关于在网站的字段中编写文本。在该字段中写入的唯一方法似乎是通过SendKeys(everything else failed)。这个问题是,我必须更改其间的格式(您可以通过“Click”命令看到它使其变为粗体):

Application.SendKeys "Here is the first text", True
IEApp.document.forms(0).elements(1).Click
Application.SendKeys "Here is the second text", True

可悲的是,代码没有按计划运行:即使我添加了“True”以确保它等待执行第二个命令,它开始在第一个文本的中间某处写入粗体。因此我有想法等待

Application.Wait (Now + TimeValue("0:00:01"))

但它失去了应用程序的重点,我无法发送我最后填写的表单。我的下一个想法是通过计算中间的东西而不使用最后一个命令来延迟它:

c = 1000000
For i = 1 To 100
    c = c / 7
Next i

这导致第一个文本的一部分写出来,然后格式改变了,下一个文本开始时打断了第一个。

有人有想法吗?

1 个答案:

答案 0 :(得分:0)

While IEapp.Busy
doEvents
Wend
Application.Wait (Now + TimeValue("0:00:01"))
点击事件后