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