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,它可以工作,但不能 Enter
您是否尝试过 ~(波形符),正如本页建议的那样:
Sub FillInternetForm()
将 IE 作为对象变暗
设置 IE = CreateObject("InternetExplorer.Application")
IE.导航“http://reference.medscape.com/drug-interactionchecker”
IE.Visible = True
当 IE.Busy 时
做活动
温德
设置 TrackID = IE.Document.getelementbyid("MDICtextbox")
TrackID.Value =“阿司匹林”
IE.Visible = True
'Application.SendKeys(“{ENTER}”)
IE.Document.parentwindow.execscript“handleKeyDown({which:13,preventDefault:function(){}});”
结束子
根据经验,如果您使用
SendKeys
,那么您就做错了。
SendKeys
是一个极其脆弱的功能,通常还有其他“程序化”方法
我给你分析了
http://reference.medscape.com/drug-interactionchecker
,
原来是
handleKeyDown
函数绑定了onkeydown
事件,
直接调用即可简单模拟
{ENTER}
键
handleKeyDown({which:13,preventDefault:function(){}});
(您可以通过在浏览器的控制台中输入来验证它是否有效)
您可以使用以下方式从 vba 调用该函数:
IE.Document.parentwindow.execscript "handleKeyDown({which:13,preventDefault:function(){}});"