Hogyan frissítsünk rendszeresen egy Excel-munkalapot VBA időzítővel

Oszd meg most:

Ez a cikk bemutatja, hogyan frissíthet rendszeres időközönként egy munkalapot vagy diagramot. Ez a gyakorlat egy időzítőt épít fel, amely percenként frissíti a munkalapot, tükrözve a forrásadatok változásait.

Ez a cikk feltételezi, hogy az olvasó megjeleníti a Fejlesztői szalagot, és ismeri a VBA-szerkesztőt. Ha nem, használja a Google „Excel Developer Tab” vagy az „Excel Code Window” szolgáltatását.

Példa a gyakorlatban használt munkafüzetre található itt .

A dinamikus jelentéskészítés a következők lehetnek:

  • A vállalati telefonrendszerhez mellékelt saját adatbázis olvasása a hívások elemzése érdekében.
  • Hozz létre egy véletlen számot 15 percenként nyeremény vagy tombola céljára.
  • Automatikus e-mailek küldése a helyi adatbázisból, ha bizonyos szintek teljesülnek. (itt az időzítő az elért szintek alapján dönti el, hogy elindítja-e a folyamatot vagy sem).

vagy azt, amelyet használni fogunk:

  • Jelenítse meg a legújabb USD/EUR árfolyamot az internetről.

Az adatokat a Yahoo Finance webhely minden egyes percben. Sikeres tesztelés után hosszabb feldolgozási intervallumot kell helyettesíteni.

Az interfész

Nyisson meg egy új munkafüzetet;

Nevezze el az első lapot „Kijelző”. Mivel a D8–E11 táblázat az internetről lesz kitöltve, az értékeket vagy a sorfejléceket nem kell megadni. A többi nem kötelező.Készítse elő a felületet

A kód

Nyissa meg a VBA kód ablakot, és helyezzen be egy modult. Másolja be az alábbi kódot a modulba.

Az Auto_Open esemény a munkafüzet megnyitásakor indítja el az időzítőt, és a munkafüzet bezárásakor áll le, kivéve, ha a fejlesztő megszakítja a kódot fejlesztés közben.VBA kód

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

Az eredmény

Minden n percben frissül a táblázat a „Megjelenítés” lapon a Yahoo webhelyéről. A bonyolultabb adatkapcsolatokért keresse fel a Microsoft webhelyét.

Sérült munkafüzetek helyreállítása

Az Excelről köztudott, hogy váratlan pillanatokban összeomlik, valószínűleg az erőforrások hiánya miatt. Ilyen esetekben a forrásfájl visszavonhatatlanul megsérülhet, és nem nyitható meg újra. Gyakori biztonsági mentés hiányában egy eszköz a helyreállításhoz... sérült Excel fájlok felbecsülhetetlen értékűek lennének.

Szerző Bevezetés:

Felix Hooker adat-helyreállítási szakértő DataNumen, Inc., amely világelső az adat-helyreállítási technológiák területén, beleértve rar javítás és SQL helyreállítási szoftvertermékek. További információért látogasson el www.datanumen.com

Oszd meg most:

Hozzászólások lezárva.