VBA Excel: página web y QueryTable
Resueltoyg_be Mensajes publicados 23437 Fecha de registro Estado Colaborador Última intervención -
Hola,
El siguiente fragmento de código
' Copiar la página web en "Hoja2"
Sheets("Hoja2").Select
Cells.Clear
' agregar 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
......
copia una página web completa en la Hoja2 desde A1 y funciona de manera satisfactoria para mis necesidades. Sin embargo, algunas áreas de la página web contienen indicaciones del tipo 1-14 (por ejemplo) y se importan en las celdas de Excel como una fecha del tipo ene-14 ... ¿Es posible evitar este inconveniente y recuperar 1-14?
Windows / Chrome 124.0.0.0
- VBA: Derivada y tangente en un gráfico de Excel
- VBA Excel - MultiPágina - visualización de páginas
- [VBA/Excel] Botones de minimizar y maximizar para UserForm
- ocultar y mostrar filas VBA excel
- VBA seleccionar página 2 y copiar al final del documento.
- Copia de una página web con una macro de Excel 365
1 respuesta
-
yg_be Mensajes publicados 23437 Fecha de registro Estado Colaborador Última intervención Ambassadeur 1 588
hola,
Puedes ver que tienes el mismo comportamiento si escribes "1-14" manualmente en una celda.
Para evitar que Excel interprete los datos, primero hay que configurar las celdas en formato "Texto".
Cells.Clear Cells.NumberFormat = "@"
-
-
-
Creo que hay un parámetro que permite preservar el formato de las celdas.
Sería más bien un parámetro accesible a través de la destinación, no a través de la conexión.
Te sugiero que lo pruebes manualmente para encontrar este parámetro, y luego lo automatices si es necesario (el VBA podría simplemente usar un parámetro existente).
-
-
Con mi archivo html de prueba, esto funciona simplemente poniéndolo en formato texto.
Cells.Clear Cells.NumberFormat = "@" Set QT = ActiveSheet.QueryTables.Add(Connection:="URL;" & Url, _ Destination:=Range("A1")) ' configurar la QueryTable... With QT .WebSelectionType = xlEntirePage '... para seleccionar toda la página '.PreserveFormatting = False '.WebDisableDateRecognition = False .Refresh BackgroundQuery:=False '... para refrescar los datos y pegarlos en la hojaun <br> 1-14 <br> tres
-