簡體   English   中英

自動 Internet Explorer 時,Sendkey ("{ENTER}") 不起作用

[英]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是一個極其脆弱的函數,通常還有其他“程序化”的方法

我的建議:使用頁面的 javascript

我為你分析了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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM