Visual Basic para Aplicaciones - Descargar tabla html con vba excel

Life is soft - evento anual de software empresarial
 
Vista:
sin imagen de perfil
Val: 1
Ha disminuido su posición en 5 puestos en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

Descargar tabla html con vba excel

Publicado por Fco.Javier (1 intervención) el 02/08/2018 21:34:16
Hola a todos y gracias de antemano.

Estoy intentando descargar una tabla a excel de la página mismarcadores.com.

He conseguido una macro por internet. El problema es que la etiqueta html de la tabla no tiene ID, y siempre que ejecuto la macro salta el siguiente error:

Se ha producido el error 438 en tiempo de ejecución: El objeto no admite esta propiedad o método

La macro que ejecuto es la siguiente:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
Sub importartblhtml()
 
    Dim appIE As Object
    Dim allRowOfData As Object
    Dim curHTMLRow As Object
    Dim Fila As Long, Col As Long
    Dim Celda As Object
 
    Set appIE = CreateObject("internetexplorer.application")
 
    With appIE
 
        .Visible = True
        .navigate "https://www.mismarcadores.com/futbol/espana/laliga/partidos/"
 
        While .Busy = True Or .readyState < 4: DoEvents: Wend
 
     ThisWorkbook.Sheets("Hoja1").Activate
     Cells.Select
     Selection.ClearContents 'limpiamos contenidos
 
        Set allRowOfData = appIE.document.getElementsById("fs-fixtures")
 
        For Fila = 1 To allRowOfData.Rows.Length - 1
 
            Set curHTMLRow = allRowOfData.Rows(Fila)
 
            For Col = 0 To curHTMLRow.Cells.Length - 1
 
                Set Celda = Sheets("Hoja1").Cells(Fila + 1, Col + 1)
 
                Celda.Value = "'" & curHTMLRow.Cells(Col).innerText
 
            Next Col
 
        Next Fila
 
        .Quit
 
    End With
 
    Set appIE = Nothing
    Set curHTMLRow = Nothing
    Set Celda = Nothing
End Sub

El error salta al ejecutarse la línea Set allRowOfData = appIE.document.getElementsById("")

He probado con el método getElementsByTag("table")(0) y tampo funciona. Importa toda la página excepto lo que quiero, que son los partidos.

No he encontrado mucha información por internet hacerca de como solucionar el error.

El código html de donde quiero sacar los datos es el siguiente 

Sin-titulo

Alguien sabe si me falta activar alguna referencia o algún otro método para poder descargar esta tabla??

Gracias.

Saludos.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder