VBA-IE10 Almacenamiento de la tabla ¿Objeto?

He descubierto cómo rotar a través de una tabla basada en web para encontrar información específica. Al final de la tabla hay algunos botones con los que

interactuar más tarde, el texto interno de

es "Amend" . sin embargo, esto está en el código fuente como

Amend

Amend

así que aquí está mi código de bucle

  Set tbl = ie.document.getElementsByTagName("table")(1) Set trs = tbl.getElementsByTagName("tr") For r = 0 To trs.Length - 1 Set tds = trs(r).getElementsByTagName("td") 'if no  then look for  If tds.Length = 0 Then Set tds = trs(r).getElementsByTagName("th") For c = 0 To tds.Length - 1 If tds(c).innerText Like "471*" Then Storage(d, 0) = tds(c).innerText Storage(d, 1) = tds(c + 2).innerText Storage(d, 2) = tds(c + 4).innerText If tds(c + 6).innerText = "Amend" Then Set Amen_BTN(d, 0) = tds(c + 6).****BUT WHAT GOES HERE!?***** End If d = d + 1 Debug.Print tds(c).innerText End If Next c Next r 

Entonces, ¿qué va en el ***** para permitirme almacenar el botón para usar más adelante Amen_BTN(0, 0).Click Espero que esta es una pregunta comprensible,

¡Gracias por tomarse el tiempo de leer esto!

Mirando el fragmento html de la página y leyendo sus comentarios finalmente entiendo lo que está tratando de lograr. Pero esto es IMO imposible :(.

La última celda tiene el siguiente contenido:

   Amend   

Por lo tanto, contiene un elemento de anchor con java-script confirm call. Cuando el usuario confirma la modificación , la función _doPostBack se llamará recibiendo el nombre del control que causó la publicación posterior que luego realiza el envío del form . Entonces, toda la página se envía al servidor en una solicitud POST y en el servidor hace algo con los datos y devuelve una página resultante. El indica una lógica de servidor que espera algunos parámetros y devuelve resultados. Por eso, cuando la grilla tblResults no ofrece un procesamiento masivo de más de un ítem a la vez, entonces probablemente no sea posible o seguro procesar más de uno a la vez. Así que aquí puede simplemente hacer clic en una modificación y dejar que el servidor procese la solicitud y luego recuperar los datos nuevos del servidor y procesarlos a continuación, etc. ¿Es comprensible? HTH


EDITAR :

  • Cómo hacer clic en el elemento de anchor con VBA:

Aquí en este ejemplo se querySelector método querySelector . Especificamos el selector para el elemento de anchor específico anchor por ejemplo, así:

 div[id='divResults'] table[id='tblResults'] tbody td a[id='MainContent_rptBookings_btnAmendBooking_0'] 

El código completo podría verse así, HTH.

 Option Explicit ' Add reference to Microsoft Internet Controls (SHDocVw) ' Add reference to Microsoft HTML Object Library Sub ClickOnAmendBooking() Dim ie As SHDocVw.InternetExplorer Dim doc As MSHTML.HTMLDocument Dim url As String url = "file:///c:/Temp/StackOverflow/html/" Set ie = New SHDocVw.InternetExplorer ie.Visible = True ie.navigate url & "Chris_livermore.html" While ie.Busy Or ie.readyState <> READYSTATE_COMPLETE: DoEvents: Wend Set doc = ie.document Dim btnAmendBooking As HTMLAnchorElement Set btnAmendBooking = doc.querySelector("div[id='divResults'] table[id='tblResults'] tbody td a[id='MainContent_rptBookings_btnAmendBooking_0']") If Not btnAmendBooking Is Nothing Then btnAmendBooking.Click Else MsgBox "btnAmendBooking was not found on webpage" End If ie.Quit Set ie = Nothing End Sub 

Resultado: enter image description here

Para aquellos que quieren la fuente,

    Total pages:2 
Booking Ref Pickup Location Passenger Name Destination Location Date Time Status Options
4734464
ST LEONARDS WEST MARINA DEPOT, CLIFTONVILLE RD, HASTINGS, TN38 8AG
STP HH970
HASTINGS STATION PICK UP BY COLLEGE ENTRANCE, STATION APPROACH, HASTINGS, TN34 1BA 10/03/2017 20:04 Confirmed Amend
Return
Cancel
4734463
ST LEONARDS WEST MARINA DEPOT, CLIFTONVILLE RD, HASTINGS, TN38 8AG
LTP HH970
HASTINGS STATION PICK UP BY COLLEGE ENTRANCE, STATION APPROACH, HASTINGS, TN34 1BA 09/03/2017 20:04 Confirmed Amend
Return
Cancel
4734462
ST LEONARDS WEST MARINA DEPOT, CLIFTONVILLE RD, HASTINGS, TN38 8AG
LTP HH970
HASTINGS STATION PICK UP BY COLLEGE ENTRANCE, STATION APPROACH, HASTINGS, TN34 1BA 08/03/2017 20:04 Confirmed Amend
Return
Cancel
4734461
ST LEONARDS WEST MARINA DEPOT, CLIFTONVILLE RD, HASTINGS, TN38 8AG
LTP HH970
HASTINGS STATION PICK UP BY COLLEGE ENTRANCE, STATION APPROACH, HASTINGS, TN34 1BA 07/03/2017 20:04 Confirmed Amend
Return
Cancel
4734460
ST LEONARDS WEST MARINA DEPOT, CLIFTONVILLE RD, HASTINGS, TN38 8AG
LTP HH970
HASTINGS STATION PICK UP BY COLLEGE ENTRANCE, STATION APPROACH, HASTINGS, TN34 1BA 06/03/2017 20:04 Confirmed Amend
Return
Cancel
4713706
ST LEONARDS WEST MARINA DEPOT, CLIFTONVILLE RD, HASTINGS, TN38 8AG
LTP HH970
HASTINGS STATION PICK UP BY COLLEGE ENTRANCE, STATION APPROACH, HASTINGS, TN34 1BA 03/03/2017 20:04 Confirmed
Return
4713705
ST LEONARDS WEST MARINA DEPOT, CLIFTONVILLE RD, HASTINGS, TN38 8AG
LTP HH970
HASTINGS STATION PICK UP BY COLLEGE ENTRANCE, STATION APPROACH, HASTINGS, TN34 1BA 02/03/2017 20:04 Confirmed
Return
4713704
ST LEONARDS WEST MARINA DEPOT, CLIFTONVILLE RD, HASTINGS, TN38 8AG
LTP HH970
HASTINGS STATION PICK UP BY COLLEGE ENTRANCE, STATION APPROACH, HASTINGS, TN34 1BA 01/03/2017 20:04 Confirmed
Return
4719527
CLIFTONVILLE WEST MARINA DEPOT, CLIFTONVILLE ROAD, ST LEONARDS ON SEA, EAST SUSSEX, TN38 8AG
Andrew Hansen
HASTINGS STATION PICK UP BY COLLEGE ENTRANCE, STATION APPROACH, HASTINGS, SEVENOAKS, TN34 1BA 28/02/2017 21:10 Amended
Return
4713703
ST LEONARDS WEST MARINA DEPOT, CLIFTONVILLE RD, HASTINGS, TN38 8AG
Andrew Hanson
HASTINGS STATION PICK UP BY COLLEGE ENTRANCE, STATION APPROACH, HASTINGS, TN34 1BA 28/02/2017 20:00 Cancelled
Return
4713702
ST LEONARDS WEST MARINA DEPOT, CLIFTONVILLE RD, HASTINGS, TN38 8AG
Paul Kennard
HASTINGS STATION PICK UP BY COLLEGE ENTRANCE, STATION APPROACH, HASTINGS, TN34 1BA 27/02/2017 20:00 Amended
Return