Кнопка HTML не отображает ту же функциональность при нажатии с VBA, в отличие от нажатия вручную

Вручную:

  1. Откройте IE
  2. Открыть URL
  3. Нажмите кнопку HTML (Button1 для аргумента)
  4. Нажмите OK во всплывающем диалоговом окне. Дождитесь, пока клиент свяжется с сервером, и откроется лист Excel.

По VBA (мой код в настоящее время делает это):

  1. Открыть IE Открыть URL
  2. Нажмите кнопку HTML (Button1 для аргумента)

Все это прекрасно работает, и всплывающее диалоговое окно выглядит так же, как и при ручном нажатии кнопки 1. Однако в этот момент, когда я вручную нажимаю кнопку ОК в диалоговом окне, ничего не происходит!

Я не вижу, в чем разница, потому что последнее действие в обеих последовательностях одинаково (ручное нажатие на кнопку ОК в диалоге).

Кто-нибудь видел этот тип проблемы раньше?

Редактировать:

Спасибо за вашу помощь, ребята, я должен был упомянуть, что я пытаюсь взаимодействовать с HTML на сервере Sharepoint. Ниже мой код и источник HTML. Я знаю, что мой метод поиска кнопки, вероятно, не самый сильный или самый стандартный, но это было единственное, что я мог использовать в качестве параметра поиска в то время.

Мой VBA:

'------------------------------- Open IE & URL
    Dim appIE As Object
    Dim URL As String

    URL = "http://OurSharePointServer/epr/default.aspx"
    Set appIE = CreateObject("InternetExplorer.Application")

    With appIE
        .navigate URL
        .Visible = True
    End With

    While appIE.Busy Or appIE.readyState <> 4: DoEvents: Wend
'---------------------------------------------

'------------------------------- Click "Raise New EPR" Button
    For Each htma In appIE.document.getElementsByTagName("img")
   '     Debug.Print htma.onclick
        If InStr(htma.onclick, "createNewDocumentWithProgID") > 0 Then
            Dim appExcel As Object
            Set appExcel = CreateObject("Excel.Application")
            appExcel.Workbooks.Add
            htma.Click
            Application.Wait (Now + TimeValue("0:00:10"))
            Exit For
        End If
    Next
'---------------------------------------------

HTML-код кнопки:

<IMG 
onclick="createNewDocumentWithProgID('http:\u002f\u002fOurSharepointServer\u002fepr\u002fsubmit\u002fForms\u002fepr_.xls',    
'http:\u002f\u002fOurIntranet\u002fepr\u002fsubmit',    
'SharePoint.OpenDocuments', false)" 
src="../site%20images/epr_but.jpg" 
<a href="http://OurSharepointServer/epr/Submit">

1 ответ

Поскольку вы больше ничего не указали, единственная подсказка - применить .focus() метод этой кнопки HTML (Button1 ради аргумента) перед .click()и также применяя .blur() может помочь метод для других элементов на странице, с которой вы взаимодействуете. Обычно это может быть обработчик, назначенный одному из этих событий, что в итоге приводит к такой разнице в поведении.

Другие вопросы по тегам