2013-12-26 3 views
-1

Это HTML код в текстовое поле:Набор текста в текстовом поле в интернет-проводник в VBA

<td> 
    <input type="text" 
     name="maskString1" 
     size="32" 
     style="text-transform: uppercase" 
     onkeyup="determineType(this, document.accForm.searchType1)" 
     onblur= "mask('masksearchString1','searchString1','1', document.accLookForm.searchType1)" 
     onfocus="unmask('maskString1','searchString1',document.accForm.searchType1,'1')" 
    > 

Я автоматизирован его в VBA Код:

ie.Document.All("masksearchString1").Value = "0000000044455458" 

Но проблема заключается в текстовое поле является каскадным текстовым полем. После ввода значения в текстовое поле соответствующим образом изменяется значение следующей комбинации.

Но при запуске этого кода значение вставляется в текстовое поле, но значение combobox не изменяется.

Есть ли способ поместить курсор в текстовое поле, а затем вставить значение, чтобы каскадная функциональность работала?

ответ

1

Try 'Focus()' или 'FireEvent()' методы. Короткий пример здесь. НТН

' Add refernces to 
' - Microsoft Internet Controls 
' - Microsoft HTML Object Library 

Option Explicit 

Private Const URL As String = "C:/Temp/page1.html" 

Sub test() 
    Dim internet_browser As InternetExplorer 
    Dim html_document As HTMLDocument 

    Set internet_browser = New InternetExplorer 

    With internet_browser 
     .Visible = True 
     .navigate URL 

     Do While .Busy And Not .readyState = READYSTATE_COMPLETE 
      DoEvents 
     Loop 

     Set html_document = .document 

     Dim x As HTMLInputElement 
     Set x = html_document.all("maskString1222") 
     If Not x Is Nothing Then 
      ' x.Focus ... gets focus 
      x.Value = "0000000044455458" 
      x.FireEvent "onkeyup" ' ... or fire some other event by its name 
     End If 

Quit: 
     .Quit 
    End With 

    Set html_document = Nothing 
    Set internet_browser = Nothing 
End Sub 
+0

Эй Даниель, Thaks для help.But у меня есть проблемы в этом ..Your коде работает только тогда, когда текстовое поле не сфокусирована .... но здесь, в моем после области применения страницы получает навигацию текстовое поле автоматически фокусируется и код x.value = "0000000044455458" не работает .... Так что я не знаю, как продолжить .... – user603031

+1

Ок, текстовое поле автоматически сфокусировано, но код VBA x.Value = "... «на это не должно влиять. У вас есть некоторые функции скрипта java, определенные для таких событий, как «onfocus», «onkeyup» и т. Д. Что это за функции? Может ли сценарий java быть причиной того, что значение установлено неправильно? Например. некоторые проверки происходят? Если возможно, попробуйте выполнить вызовы этих функций и посмотреть, что произойдет. – dee

Смежные вопросы