Dit artikel laat zien hoe u een werkblad of diagram met regelmatige tussenpozen vernieuwt. Deze oefening bouwt een timer die het werkblad elke minuut vernieuwt, rekening houdend met veranderingen in de brongegevens.
In dit artikel wordt ervan uitgegaan dat de lezer het ontwikkelaarslint heeft weergegeven en bekend is met de VBA-editor. Als dit niet het geval is, gebruik dan Google "Excel Developer Tab" of "Excel Code Window".
Een voorbeeld van het werkboek dat in deze oefening wordt gebruikt, is te vinden hier.
Toepassingen van dynamische rapportage kunnen zijn:
- Het uitlezen van de bedrijfseigen database die bij uw telefoonsysteem is geleverd, om gesprekken te analyseren.
- Genereer elke 15 minuten een willekeurig nummer voor prijs- of loterijdoeleinden.
- Verzend automatisch e-mails vanuit uw lokale database wanneer aan bepaalde niveaus is voldaan. (hier zal de timer beslissen of het proces wordt gestart of niet, op basis van de bereikte niveaus).
of degene die we zullen gebruiken:
- Geef de laatste USD / EUR-wisselkoers van internet weer.
De gegevens worden gehaald uit het Yahoo Finance-website elke minuut. Eenmaal met succes getest, moet een langer verwerkingsinterval worden vervangen.
De interface
Open een nieuwe werkmap;
Noem het eerste blad "Display". Aangezien de tabellen D8 tot en met E11 vanaf het web worden gevuld, hoeven geen waarden of rijkoppen te worden ingevoerd. De rest is optioneel.
De code
Open het VBA-codevenster en voeg een module in. Kopieer de onderstaande code naar de module.
De Auto_Open-gebeurtenis start de timer wanneer het werkblad wordt geopend en stopt wanneer het werkblad wordt gesloten, tenzij de code tijdens de ontwikkeling door de ontwikkelaar wordt onderbroken.
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
Het resultaat
Elke n minuten wordt de tabel in Sheet "Display" bijgewerkt vanaf de Yahoo-website. Raadpleeg de website van Microsoft voor complexere gegevensverbindingen.
Herstel van beschadigde werkmappen
Het is bekend dat Excel op onverwachte momenten vastloopt, waarschijnlijk door een gebrek aan resources. In zulke gevallen kan het bronbestand onherstelbaar beschadigd raken en niet meer geopend kunnen worden. Zonder regelmatige back-ups is een tool om het bestand te herstellen vaak een probleem. beschadigde Excel bestanden zouden van onschatbare waarde zijn.
Auteur Introductie:
Felix Hooker is een expert op het gebied van gegevensherstel DataNumen, Inc., de wereldleider in technologieën voor gegevensherstel, waaronder rar fix en sql-herstelsoftwareproducten. Voor meer informatie bezoek www.datanumen.com

