Cómo leer datos de páginas web en línea con Excel VBA

Comparte ahora:

Este ejercicio muestra cómo leer datos de un sitio web, en este caso los tipos de cambio de moneda actualizados de Yahoo.com.

Se supone que el lector muestra la cinta de desarrollador y está familiarizado con el editor de VBA. De lo contrario, busque en Google "Pestaña de desarrollador de Excel" o "Ventana de código de Excel".

Los requisitos previos incluyen el conocimiento de cómo completar cuadros combinados y definir nombres.

El libro de trabajo consta de dos hojas:

La interfaz de usuario:La interfaz de usuario

Los cuadros combinados Comprar y Vender hacen referencia a la hoja de datos local a continuación.

La tabla en D11 se pegará automáticamente desde el sitio web, conservando el formato del usuario.Compra y venta de divisas

El xlsm para este ejercicio se puede descargar aquí.

Construyendo la aplicación usted mismo.

Crea una hoja con dos cuadros combinados. Los cuadros combinados harán referencia a celdas en una segunda hoja.

Los cuadros combinados también invocarán el código para leer el sitio web, utilizando el CAMBIAR evento.

Los nombres de las monedas se pueden pegar en la segunda hoja ("Monedas") de la lista a continuación, el orden de clasificación es una cuestión de preferencia personal:

ZAR
USD
EUR
GBP
CHF
MXN
NZD
JPY
CAD
SEK
DKK
NOK
MUR
HKD
SGD
ILS
AED
INR
CNY

Pegue los datos en las columnas B y E.

Defina nombres y utilice las funciones de índice como se muestra en la ilustración:Compra y venta de divisas

Dado que los nombres se han definido en la hoja de datos local "Monedas", la hoja "Principal" simplemente tiene que hacer referencia a los nombres definidos para obtener el valor, es decir, = VENDER y = COMPRAR para las celdas "Principales" E10 y G10 respectivamente.

Programaremos Excel para leer la web. Sin embargo, tiene su propio proceso integrado en la cinta de datos, una instancia del cual le gustaría registrar como una macro al crear diferentes escenarios. Tenga en cuenta que las configuraciones de la computadora o el navegador pueden afectar negativamente a los scripts de las páginas web.

El código

Inserte un módulo e ingrese lo siguiente:

Option Explicit

Sub Ticker()
  Dim currBuy As String
  Dim currSell As String

  Range("D11:F14").ClearContents      'prepare the ground for the web data
  currBuy = Range("BUY")          'get variable values from Defined Names previously set up
  currSell = Range("SELL")
  With ActiveSheet.QueryTables.Add(Connection:= _
    "URL;http://finance.yahoo.com/q?s=" & currBuy & currSell & "=X", Destination:=Range("$D$11"))
    .Name = "q?s=" & currSell & currBuy & "=X"
    .FieldNames = True
    .RowNumbers = False
    .FillAdjacentFormulas = False
    .PreserveFormatting = True
    .RefreshOnFileOpen = False
    .BackgroundQuery = True
    .RefreshStyle = xlInsertDeleteCells
    .SavePassword = False
    .SaveData = True
    .AdjustColumnWidth = True
    .RefreshPeriod = 0
    .WebSelectionType = xlSpecifiedTables
    .WebFormatting = xlWebFormattingNone
    .WebTables = """table1"""
    .WebPreFormattedTextToColumns = True
    .WebConsecutiveDelimitersAsOne = True
    .WebSingleBlockTextImport = False
    .WebDisableDateRecognition = False
    .WebDisableRedirections = False
    .Refresh BackgroundQuery:=False
  End With
End sub

Sub DropDown2_Change()    'This event will call the routine above. Object name might differ.
    Call Ticker
End Sub

Sub DropDown1_Change()
    Call Ticker
End Sub

Guarde el libro de trabajo como tipo xlsm.

Pruebe el código cambiando los valores de los cuadros combinados, luego mejore los formatos de la tabla pegada (¿cuatro lugares decimales, líneas de cuadrícula, sombreados?).

Corrupción de archivos de Excel

Excel es conocido en ocasiones por corromper los archivos al guardarlos, luego de eso, intenta su propia rutina de auto-recuperación que a menudo, en mi experiencia, simplemente no funciona. Esto puede ser desastroso para el usuario, ya que es el archivo fuente (posiblemente su única copia) el que se destruye. Archivos de Excel dañados sin embargo, se puede reparar con herramientas de terceros, lo que ahorra tiempo y esfuerzo considerables.

Introducción del autor:

Felix Hooker es un experto en recuperación de datos en DataNumen, Inc., que es el líder mundial en tecnologías de recuperación de datos, incluyendo reparación rar Archivo y productos de software de recuperación de sql. Para más información visite www.datanumen.com

Comparte ahora:

Los comentarios están cerrados.