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:
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

Alguien sabe si me falta activar alguna referencia o algún otro método para poder descargar esta tabla??
Gracias.
Saludos.
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

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


0