Kuinka päivittää Excel-laskentataulukko säännöllisesti VBA-ajastimella

Tässä artikkelissa kerrotaan, kuinka laskentataulukko tai kaavio päivitetään säännöllisin väliajoin. Tämä harjoitus rakentaa ajastimen, joka päivittää laskentataulukon minuutin välein, mikä heijastaa lähdetietojen muutoksia.

Tässä artikkelissa oletetaan, että lukijalla on kehittäjänauha ja että hän tuntee VBA-editorin. Jos ei, ota Google "Excel Developer -välilehti" tai "Excel Code -ikkuna".

Löydetään esimerkki tässä harjoituksessa käytetystä työkirjasta täältä.

Dynaamisen raportoinnin käyttötarkoitukset voivat olla:

  • Yrityksesi puhelinjärjestelmän mukana toimitetun oman tietokannan lukeminen puheluiden analysointia varten.
  • Luo satunnaisluku 15 minuutin välein palkinto- tai arvontatarkoituksiin.
  • Lähetä sähköpostit automaattisesti paikallisesta tietokannasta, kun tietyt tasot saavutetaan. (tässä ajastin päättää, käynnistetäänkö prosessi vai ei, saavutettujen tasojen perusteella).

tai jota käytämme:

  • Näytä uusin USD / EUR-valuuttakurssi Internetistä.

Tiedot puretaan Yahoo Finance -sivusto minuutin välein. Kun testi on onnistunut, pidempi käsittelyväli tulisi korvata.

Liitäntä

Avaa uusi työkirja;

Nimeä ensimmäinen arkki "Näyttö". Koska taulukot D8 - E11 täytetään verkosta, arvoja tai rivikohtia ei tarvitse syöttää. Loput ovat valinnaisia.Valmistele käyttöliittymä

Koodi

Avaa VBA-koodi-ikkuna ja aseta moduuli. Kopioi alla oleva koodi moduuliin.

Auto_Open-tapahtuma käynnistää ajastimen, kun työkirja avautuu, ja pysähtyy, kun työkirja sulkeutuu, ellei kehittäjä keskeytä koodia kehityksen aikana.VBA-koodi

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

Lopputulos

N-minuutin välein taulukon "Näyttö" taulukko päivitetään Yahoo-verkkosivustolta. Katso monimutkaisemmat datayhteydet Microsoftin verkkosivustolta.

Vioittuneiden työkirjojen palauttaminen

Excelin tiedetään kaatuvan odottamattomissa tilanteissa, luultavasti resurssien puutteen vuoksi. Tällaisissa tapauksissa lähdetiedosto voi vaurioitua peruuttamattomasti, eikä sitä voida avata uudelleen. Jos varmuuskopioita ei tehdä usein, työkalu tiedoston palauttamiseksi on olemassa. vioittunut Excel tiedostot olisivat korvaamattomia.

Tekijän esittely:

Felix Hooker on tietojen palauttamisen asiantuntija DataNumen, Inc., joka on maailman johtava tietojen palautustekniikoissa, mukaan lukien rar-korjaus ja sql-palautusohjelmistotuotteet. Lisätietoja osoitteessa www.datanumen.com

Kommenttien lisääminen on estetty.