1

VBAスクリプトに関する問題に直面しています。私の問題は、前のIDと同じIDを持つ入力ボタンのボタンをクリックする方法です。他と異なるのはonclick値だけです...私のスクリプトは最初のADDボタンで機能しますが、ページが読み込まれると、コードに新しいADDボタン(同じIDを持つ)をクリックさせる方法がわかりません。前のものより)。以下の私のコードを参照してください:

HTMLページの最初のロード:

<input id="btnEdit" class="button" onclick="openExpenseForm(1,'ExpenseCard.aspx?ExpenseFormID=c78f4ac6-63fc-4a47-a06a-a4eafe3ded08&ExpenseCardID=&Row=1&Action=New&Enabled=True');"
                        type="button" value="ADD" />

HTMLページの2回目の読み込み:

<input id="btnEdit" class="button" onclick="openExpenseForm(1,'ExpenseCard.aspx?ExpenseFormID=c78f4ac6-63fc-4a47-a06a-a4eafe3ded08&ExpenseCardID=&Row=1&Action=New&Enabled=True');"
                        type="button" value="EDIT" />
<input id="btnEdit" class="button" onclick="openExpenseForm(2,'ExpenseCard.aspx?ExpenseFormID=c78f4ac6-63fc-4a47-a06a-a4eafe3ded08&ExpenseCardID=&Row=1&Action=New&Enabled=True');"
                        type="button" value="ADD" />

VBA:

    Dim oIE As Object
Set oIE = CreateObject("InternetExplorer.Application")
    oIE.Visible = True
    URL = "http://netsteps/expense/ExpenseForm.aspx?Action=New&EmployeeID=" & ActiveSheet.Cells(1, 3)
    oIE.Navigate (URL)

AppActivate oIE

Dim objIE As SHDocVw.InternetExplorer 'microsoft internet controls (shdocvw.dll)
Dim htmlDoc As MSHTML.HTMLDocument ' html object lib
Dim htmlInput As MSHTML.HTMLInputElement
Dim htmlColl As MSHTML.IHTMLElementCollection
Set objIE = New SHDocVw.InternetExplorer

With objIE
With ActiveSheet

    Do While oIE.Busy: DoEvents: Loop
    Do While oIE.readyState <> 4: DoEvents: Loop


    oIE.document.getElementById("ctl00_Main_txtExpenseBusinessPurpose").Value = CStr(.Cells(2, 3))

    Do While (Not IsEmpty(.Cells(lin, 1)))

    Set htmlDoc = oIE.document
    Set htmlColl = htmlDoc.getElementsByTagName("input")

        For Each htmlInput In htmlColl
            If (htmlInput.Value = Trim("ADD") And Trim(htmlInput.Type) = "button") Then
                htmlInput.Click
            End If
        Next htmlInput

        Do While oIE.Busy: DoEvents: Loop
        Do While oIE.readyState <> 4: DoEvents: Loop
        ' Process 
        'End of all loops...            

私はちょっと立ち往生しています、どんな助けでも感謝するでしょう。良い一日を、ありがとう

4

1 に答える 1

0

idbtnEditHTMLドキュメントの属性は一意であると想定されていますが、2つの要素に同じ値を割り当てます. それらを明確にします。ボタンの値属性 ( btnEdit_ADDbtnEdit_EDIT) の内容を追加することによって。ボタンが他に類を見ないものであることを表現する必要がある場合は、 - 属性を使用しdata-ます (詳細については、こちらを参照してください)。よろしくお願いします

于 2013-02-27T15:59:32.920 に答える