Come leggere i dati dalle pagine Web online con Excel VBA

Condividi ora:

Questo esercizio mostra come leggere i dati da un sito web, in questo caso i tassi di cambio aggiornati al minuto da Yahoo.com.

Si presuppone che il lettore abbia visualizzato il nastro Developer e abbia familiarità con l'editor VBA. In caso contrario, Google "Excel Developer Tab" o "Excel Code Window".

I prerequisiti includono la conoscenza del popolamento delle caselle combinate e della definizione dei nomi.

Il quaderno è composto da due fogli:

L'interfaccia utente:L'interfaccia utente

Le caselle combinate Acquista e Vendi fanno riferimento alla scheda dati locale sottostante.

La tabella in D11 verrà incollata automaticamente dal sito Web stesso, mantenendo la formattazione dell'utente.Compra e vendi valute

L'xlsm per questo esercizio può essere scaricato Qui..

Costruire l'applicazione da soli.

Crea un foglio con due caselle combinate. Le caselle combinate faranno riferimento alle celle su un secondo foglio.

Le caselle combinate richiameranno anche il codice per leggere il sito Web, utilizzando il Cambiare evento.

I nomi delle valute possono essere incollati nel secondo foglio ("Valute") dall'elenco sottostante, l'ordinamento è una questione di preferenze personali:

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

Incolla i dati nelle colonne B ed E.

Definire i nomi e utilizzare le funzioni di indice come nell'illustrazione:Compra e vendi valute

Poiché i nomi sono stati definiti sul foglio dati locale “Valute”, il foglio “Principale” deve semplicemente fare riferimento ai nomi definiti per ottenere il valore, cioè =VENDI e =ACQUISTA rispettivamente per le celle “Principale” E10 e G10.

Programmeremo Excel per leggere il web. Ha, tuttavia, il proprio processo integrato sulla barra multifunzione Dati, un'istanza di cui potresti voler registrare come macro nella creazione di diversi scenari. Tieni presente che le configurazioni del computer o del browser possono influire negativamente sugli script delle pagine web.

Il codice

Inserisci un modulo e inserisci quanto segue:

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

Salva la cartella di lavoro come tipo xlsm.

Testare il codice modificando i valori delle caselle combinate, quindi perfezionare i formati della tabella incollata (quattro cifre decimali, griglia, ombreggiature?).

Corruzione dei file Excel

È noto che Excel a volte danneggia i file durante il salvataggio, tentando successivamente la propria routine di ripristino automatico che spesso, nella mia esperienza, semplicemente non funziona. Questo può essere disastroso per l'utente, poiché è il file sorgente (forse la tua unica copia) che viene distrutto. File Excel danneggiati può tuttavia essere riparato utilizzando strumenti di terze parti, risparmiando tempo e fatica.

Introduzione dell'autore:

Felix Hooker è un esperto di recupero dati in DataNumen, Inc., che è il leader mondiale nelle tecnologie di recupero dati, tra cui riparazione rar archiviare e prodotti software di recupero SQL. Per maggiori informazioni visita www.datanumen.com

Condividi ora:

I commenti sono chiusi.