0

手動:

  1. インターネットを開く
  2. URLを開く
  3. HTML ボタン (引数のための Button1) をクリックします。
  4. ポップアップ ダイアログで [OK] をクリックします。クライアントがサーバーに接続するまで待ちます。Excel シートが開きます。

VBAによる(私のコードは現在これを行っています):

  1. IEを開く URLを開く
  2. HTML ボタン (引数のための Button1) をクリックします。

これはすべて正常に機能し、手動で Button1 をクリックした場合と同じようにポップアップ ダイアログが表示されます。ただし、この時点でダイアログの [OK] ボタンを手動でクリックしても何も起こりません!

両方のシーケンスの最後のアクションが同じ (ダイアログの [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">
4

1 に答える 1

0

これ以上何も指定していないので、唯一の手掛かりは の直前に.focus()method を適用することです。また、対話しているページの他の要素に method を適用すると役立つ場合があります。一般に、これらのイベントのいずれかに割り当てられたハンドラーである可能性があり、最終的にこのような動作の違いが生じます。HTML Button (Button1 for sake of argument).click().blur()

于 2015-04-13T20:37:32.523 に答える