2016-12-07 1 views
3

Ich habe ein Textfeld in meiner Webseite und ich habe eine Nummer darauf eingegeben. Danach möchte ich "Enter" drücken, um das Ereignis zu drücken. Wie geht das?VBA Geben Sie das Schlüsselereignis in IE ein, das nicht in einem anderen Computer funktioniert

Ich habe versucht:

  1. Sendkey Option (es nicht richtig funktioniert, denn das ist für einige gute alternative Option suchen)
  2. ich folgende Option von jemand vorschlagen, auch versucht. In diesem Fall funktioniert das in einem System einwandfrei, aber wenn ich den gleichen Code in einer anderen Maschine mit der gleichen IE-Version der gleichen Excel-Version versuchte, funktioniert es nicht.

Der Code:

Private Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long) 

Private Const VK_ENTER = &HD 

Declare Function GetKeyState Lib "user32.dll" (ByVal nVirtKey As Long) As Integer 

Function ENT() 
    keybd_event VK_ENTER, 1, 0, 0 
End Function 

VBA Code, den ich in diesem Textfeld zur Eingabe Nummer verwendet:

.document.getElementById("filteredListForm:wfmtAllTaskList:wfmtAllTaskList_columns_2:2:_filterInput").Value = number 

** nach diesem Code ich, was in diesem Text Schlüsselereignis auszuführen eingeben Bogen.

HTML-Code für das Textfeld:

<input id="filteredListForm:wfmtAllTaskList:wfmtAllTaskList_columns_2:2:_filterInput" 
class="mdw_columnFilter" type="text" placeholder="Project ID" 
onblur="hideFilterInput(this);" onkeydown="submitOnEnter(event, this.form);" 
value="" name="filteredListForm:wfmtAllTaskList:wfmtAllTaskList_columns_2:2:_filterInput"> 
+0

Blick auf Fireevent, sieht aber wie es das Absenden von nur rief das Formular, also hol dir die Formularelemente, und ruf das Submit auf. –

+0

double check was submitOnEnter tut, wenn Sie können, ich denke, es wird nur für Enter-Taste, anstatt die Eingabe von Text. –

Antwort

0

nicht, eine Antwort, Backup für einen Kommentar, Bibliothek mit HTML Object

Public Function x(i As Control) 

Dim d As HTMLDocument 
Dim f As MSHTML.HTMLFormElement 
Dim e As MSHTML.HTMLInputElement 

Set e = d.getElementById("x") 
Set f = e.form 
f.submit 

End Function 
Verwandte Themen