单击VBA时,HTML按钮不会显示相同的功能,与手动单击时相反

时间:2015-04-13 10:43:20

标签: excel vba sharepoint htmlbutton dialog

手动:

  1. 打开IE
  2. 打开网址
  3. 单击HTML按钮(为了参数而使用Button1)
  4. 在弹出对话框中单击“确定”等待客户端与服务器联系,然后打开Excel工作表。
  5. 通过VBA(我的代码目前这样做):

    1. 打开IE Open URL
    2. 单击HTML按钮(为了参数而使用Button1)
    3. 这一切都正常,弹出对话框显示与手动单击Button1时相同。但是,此时我手动点击对话框上的确定按钮没有任何反应!

      我无法看出区别是什么,因为两个序列中的最后一个动作是相同的(手动按下对话框的OK按钮)。

      之前有没有人见过这类问题?

      编辑:

      感谢您的帮助,到目前为止,我应该提到我正在尝试与Sharepoint服务器上的HTML进行交互。下面是我的代码和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 个答案:

答案 0 :(得分:0)

由于您还没有另外指定,唯一的线索是在.focus()之前将.click()方法应用于 HTML按钮(为了参数而使用Button1),并且对您正在与之交互的页面上的其他元素应用.blur()方法可能会有所帮助。通常,它可能是分配给其中一个事件的处理程序,最终会导致这种行为差异。