【问题标题】:VBA to manipulate IE: Properly using SendKeys with waiting not possibleVBA 操作 IE:正确使用 SendKeys 并无法等待
【发布时间】:2016-11-26 08:47:17
【问题描述】:

你好 StackOverflow 社区,

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

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

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

这导致第一个文本的一部分被写出,然后格式发生变化,下一个文本从第一个文本开始中断。

有人有想法吗?

【问题讨论】:

    标签: html excel forms vba internet-explorer


    【解决方案1】:

    试试

    While IEapp.Busy
    doEvents
    Wend
    Application.Wait (Now + TimeValue("0:00:01"))
    

    点击事件后

    【讨论】:

    • 欢迎来到Stack Overflow!仅代码的答案对其他人的帮助较小。请添加一些说明,说明您的代码是做什么的,或者它如何解决问题。
    • 遗憾的是它也失去了焦点,我无法将焦点重新放在它上面。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-09-13
    • 1970-01-01
    • 1970-01-01
    • 2020-02-20
    • 2019-11-03
    • 2020-03-05
    • 1970-01-01
    相关资源
    最近更新 更多