[英]Sendkey ("{ENTER}") not working when automating Internet explorer
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 等其他命令,它可以工作但不能輸入
您是否嘗試過〜(波浪號) ,正如本頁所建議的那樣:
根據經驗,如果您使用的是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(){}});"
子 FillInternetForm()
將 IE 調暗為對象
設置 IE = CreateObject("InternetExplorer.Application")
IE.Navigate “ http://reference.medscape.com/drug-interactionchecker ”
IE.可見 = 真
IE.Busy 時
做事件
文德
設置 TrackID = IE.Document.getelementbyid("MDICtextbox")
TrackID.Value = "阿司匹林"
IE.可見 = 真
'Application.SendKeys ("{ENTER}")
IE.Document.parentwindow.execscript "handleKeyDown({which:13,preventDefault:function(){}});"
結束子
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.