excel 自动运行Internet Explorer时,发送键(“{ENTER}”)不起作用

yyhrrdl8  于 2023-01-27  发布在  其他
关注(0)|答案(3)|浏览(157)

Sendkey ("{ENTER}")未从excel向网站输入数据
我需要使用它,因为窗体没有可单击的按钮

Sub FillInternetForm()
Dim IE As Object
Set IE = CreateObject("InternetExplorer.Application")
IE.Navigate "http://reference.medscape.com/drug-interactionchecker"
IE.Visible = True
While IE.Busy
DoEvents
Wend

Set TrackID = IE.Document.getelementbyid("MDICtextbox")
TrackID.Value = "Aspirin"
IE.Visible = True
SendKeys ("{ENTER}") 

End Sub

请注意,如果我将enter更改为其他命令(如{BS}或Backspace),则它会工作,但不会输入

sr4lhrrt

sr4lhrrt1#

您是否尝试了本页建议的**~(波浪号)**:
SendKeys

dohp0rv5

dohp0rv52#

提交填写互联网表单()
将IE变暗为对象
设置IE =创建对象("Internet资源管理器.应用程序")
即导航"http://reference.medscape.com/drug-interactionchecker"
即可见=真
IE.忙碌时
执行事件
文德
设置跟踪ID =即.文档. getelementbyid("MDIC文本框")
跟踪ID。值="阿司匹林"
即可见=真
'应用程序.发送键("{ENTER}")
即文档.父窗口.执行脚本"handleKeyDown({其中:13,防止默认:函数(){}});"
末端子组件

quhf5bfb

quhf5bfb3#

根据经验,如果您使用的是SendKeys,则说明您做错了什么。
SendKeys是一个极其脆弱的函数,通常还有其他“编程”方法

我的建议:使用页面的javascript

我帮你分析了http://reference.medscape.com/drug-interactionchecker
结果是handleKeyDown函数绑定到onkeydown事件,
您可以直接调用{ENTER}键来模拟它

handleKeyDown({which:13,preventDefault:function(){}});

(You可以通过在浏览器的控制台中键入来验证它是否工作)
您可以使用以下命令从vba调用该函数:

IE.Document.parentwindow.execscript "handleKeyDown({which:13,preventDefault:function(){}});"

相关问题