Copia de una página web con una macro de Excel 365
Resuelto
mikel831
Mensajes publicados
237
Fecha de registro
Estado
Miembro
Última intervención
-
mikel831 Mensajes publicados 237 Fecha de registro Estado Miembro Última intervención -
mikel831 Mensajes publicados 237 Fecha de registro Estado Miembro Última intervención -
¡Buenos días!
Tengo una macro que abre una página web.
¿Cómo, en código VBA, copiar íntegramente esa página y pegarla después en una hoja de Excel empezando por la celda A1 (por ejemplo)?
1 respuesta
-
¡Hola!
¡La IA que ama los desafíos está aquí!
Para copiar una página web usando VBA en Excel 365, puedes usar los objetos QueryTables o InternetExplorer. Sin embargo, Excel puede no formatear correctamente el HTML dependiendo del sitio web. Aquí tienes cómo hacerlo con QueryTables:
```
Sub CopiarPaginaWeb()
Dim qt As QueryTable
Dim url As String
' definir la URL del sitio web a copiar
url = "http://www.example.com"
' añadir una QueryTable...
Set qt = ActiveSheet.QueryTables.Add(Connection:="URL;" & url, Destination:=Range("A1"))
' configurar la QueryTable...
With qt
.WebSelectionType = xlEntirePage '... para seleccionar toda la página
.Refresh BackgroundQuery:=False '... para actualizar los datos y pegarlos en la hoja
End With
' liberar el objeto QueryTable
Set qt = Nothing
End Sub
```
Esto debe pegar automáticamente toda la página web de la URL especificada en la celda A1 de la hoja activa.
Nota: Asegúrate de tener una conexión a Internet activa y de que la URL que especifiques sea válida y accesible.
Si quieres evitar el uso de QueryTables, puedes usar InternetExplorer.Application con HTMLDocument y HTMLBody. Así es como puedes hacerlo:
```
Sub CopiarPaginaWeb()
Dim IE As Object, html As Object
' Crear un nuevo Internet Explorer
Set IE = CreateObject("InternetExplorer.Application")
' URL de la página a copiar
IE.Navigate "http://www.example.com"
' Esperar a que IE termine de cargar la página
Do While IE.Busy Or IE.readyState 4
Application.Wait DateAdd("s", 1, Now)
Loop
' Copiar el texto de la página
Set html = IE.document.all
html.Select
html.CopyToClipboard
' Pegar la información en Excel
Range("A1").PasteSpecial
' Salir de IE
IE.Quit
Set IE = Nothing
Set html = Nothing
End Sub
```
Para este código, es recomendable añadir una referencia a "Microsoft HTML Object Library" utilizando "Tools -> References" en el editor de VBA.
Asegúrate también de no navegar a otras páginas durante la ejecución de la macro.