Jak pravidelně aktualizovat list aplikace Excel pomocí časovače VBA

Sdílej nyní:

Tento článek ukazuje, jak v pravidelných intervalech obnovovat list nebo graf. Toto cvičení vytváří časovač, který obnovuje list každou minutu, což odráží změny ve zdrojových datech.

Tento článek předpokládá, že čtenář má zobrazený pás karet pro vývojáře a je obeznámen s editorem VBA. Pokud ne, prosím Google „Excel Developer tab“ nebo „Excel Code Window“.

Příklad sešitu použitého v tomto cvičení najdete zde.

Použití dynamických přehledů může být:

  • Čtení majetkutarDatabáze dodávaná s telefonním systémem vaší společnosti pro analýzu hovorů.
  • Generujte náhodné číslo každých 15 minut pro účely výher nebo tomboly.
  • Automaticky odesílat e-maily z místní databáze, když jsou splněny určité úrovně. (zde časovač rozhodne na základě dosažených úrovní, zda bude proces spuštěn nebo ne).

nebo ten, který použijeme:

  • Zobrazte nejnovější směnný kurz USD / EUR z internetu.

Data jsou extrahována z Web Yahoo Finance každou minutu. Po úspěšném testování by měl být nahrazen delší interval zpracování.

Rozhraní

Otevřete nový sešit;

Pojmenujte první list „Zobrazit“. Protože tabulka D8 až E11 bude vyplněna z webu, není nutné zadávat hodnoty ani nadpisy řádků. Zbytek je volitelný.Připravte rozhraní

Kodex

Otevřete okno kódu VBA a vložte modul. Zkopírujte níže uvedený kód do modulu.

Událost Auto_Open starts Timer při otevření sešitu a zastavení při zavření worbooku, pokud vývojář během vývoje kód nepřeruší.Kód VBA

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

Výsledek

Každých n minut bude tabulka v listu „Zobrazení“ aktualizována z webu Yahoo. Složitější datová připojení najdete na webu společnosti Microsoft.

Obnovení poškozených sešitů

Je známo, že Excel selhal v neočekávaných okamžicích, pravděpodobně souvisejících s tehdy nedostatkem zdrojů. V takových případech může být zdrojový soubor irevocabpoškozené a odmítněte je znovu otevřít. Při absenci častého zálohování je nástroj k obnovení poškozený Excel soubory by byly neocenitelné.

Úvod autora:

Felix Hooker je odborník na obnovu dat v oboru DataNumen, Inc., která je světovým lídrem v oblasti technologií pro obnovu dat, včetně rar opravit a SQL softwarové produkty pro obnovu. Pro více informací navštivte www.datanumen.com

Sdílej nyní:

Komentáře jsou uzavřeny.