Den här artikeln visar hur du uppdaterar ett kalkylblad eller diagram med jämna mellanrum. Denna övning bygger en timer som uppdaterar kalkylbladet varannan minut, vilket återspeglar förändringar i källdata.
Den här artikeln förutsätter att läsaren har utvecklarbandet och är bekant med VBA Editor. Om inte, vänligen Google "Excel-fliken för utvecklare" eller "Excel-kodfönstret".
Ett exempel på arbetsboken som används i denna övning kan hittas här..
Användning av dynamisk rapportering kan vara:
- Läser den proprietära databasen som medföljer företagets telefonsystem för att analysera samtal.
- Skapa ett slumpmässigt nummer var 15: e minut för pris- eller tombolagsändamål.
- Skicka automatiskt e-postmeddelanden från din lokala databas när vissa nivåer uppfylls. (här bestämmer timern om processen ska avfyras eller inte, baserat på uppnådda nivåer).
eller den vi kommer att använda:
- Visa den senaste växelkursen USD / EUR från internet.
Data extraheras från Yahoo Finance webbplats varenda minut. När det väl har testats bör ett längre bearbetningsintervall ersättas.
Gränssnittet
Öppna en ny arbetsbok;
Namnge det första arket ”Display”. Eftersom tabellen D8 till E11 kommer att fyllas från webben behöver värden eller radrubriker inte anges. Resten är valfri.
Koden
Öppna VBA-kodfönstret och sätt in en modul. Kopiera koden nedan till modulen.
Händelsen Auto_Open startar timern när arbetsboken öppnas och stoppar när arbetsboken stängs, såvida inte koden avbryts av utvecklaren under utvecklingen.
Sub Auto_Open()
AlertTime = Now + TimeValue("00:01:00") 'interval in minutes
Application.OnTime AlertTime, "Ticker" 'call Sub Ticker, below
End Sub
Sub Ticker()
Dim currBuy As String
Dim currSell As String
Range("D8:F11").ClearContents 'prepare the destination for the web data
currBuy = "USD"
currSell = "EUR"
With ActiveSheet.QueryTables.Add(Connection:= _
"URL;http://finance.yahoo.com/q?s=" & currBuy & currSell & "=X", Destination:=Range("$D$8"))
.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
AlertTime = Now + TimeValue("00:01:00") ‘move trigger on a minute
Application.OnTime AlertTime, "Ticker"
End Sub
Resultatet
Varannan minut uppdateras tabellen i Sheet “Display” från Yahoo-webbplatsen. Se Microsofts webbplats för mer komplexa dataförbindelser.
Återställa skadade arbetsböcker
Excel har varit känt för att krascha vid oväntade tillfällen, troligen relaterat till en dåvarande brist på resurser. I sådana fall kan källfilen skadas oåterkalleligt och vägra att öppnas igen. I avsaknad av frekvent säkerhetskopiering behövs ett verktyg för att återställa skadad Excel filer skulle vara ovärderliga.
Författarintroduktion:
Felix Hooker är en dataåterställningsexpert i DataNumen, Inc., som är världsledande inom teknik för återställning av data, inklusive rar-fix och mjukvaruprodukter för SQL-återställning. För mer information besök www.datanumen.com

