Hvordan oppdatere et Excel-regneark med jevne mellomrom med en VBA-timer

Denne artikkelen viser hvordan du oppdaterer et regneark eller diagram med jevne mellomrom. Denne øvelsen bygger en tidtaker som oppdaterer regnearket hvert minutt, og gjenspeiler endringer i kildedataene.

Denne artikkelen forutsetter at leseren har utviklerbåndet vist og er kjent med VBA Editor. Hvis ikke, vennligst Google "Excel Developer Tab" eller "Excel Code Window".

Du finner et eksempel på arbeidsboken brukt i denne øvelsen her..

Bruk av dynamisk rapportering kan være:

  • Lese den proprietære databasen som følger med bedriftens telefonsystem, for å analysere samtaler.
  • Generer et tilfeldig tall hvert 15. minutt for premie- eller tombolaformål.
  • Send e-post automatisk fra din lokale database når visse nivåer er oppfylt. (her vil tidtakeren bestemme om prosessen skal utløses eller ikke, basert på oppnådde nivåer).

eller den vi skal bruke:

  • Vis den siste USD/EUR-kursen fra internett.

Dataene er hentet fra Yahoo Finance nettsted hvert minutt. Når den er testet, bør et lengre behandlingsintervall erstattes.

Grensesnittet

Åpne en ny arbeidsbok;

Gi det første arket navnet "Display". Siden tabellen D8 til E11 vil fylles ut fra nettet, trenger ikke verdier eller radoverskrifter å legges inn. Resten er valgfritt.Forbered grensesnittet

Koden

Åpne VBA-kodevinduet og sett inn en modul. Kopier koden nedenfor inn i modulen.

Auto_Open-hendelsen starter tidtakeren når arbeidsboken åpnes og stopper når arbeidsboken lukkes, med mindre koden avbrytes av utvikleren under utviklingen.VBA kode

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

Hvert n. minutt vil tabellen i arket "Display" oppdateres fra Yahoo-nettstedet. Se Microsofts nettsted for mer komplekse datatilkoblinger.

Gjenoppretting av ødelagte arbeidsbøker

Excel har vært kjent for å krasje i uventede øyeblikk, sannsynligvis relatert til mangel på ressurser. I slike tilfeller kan kildefilen bli ugjenkallelig skadet og nekte å åpnes på nytt. I mangel av hyppig sikkerhetskopiering er et verktøy for gjenoppretting nødvendig. ødelagt Excel filer ville være uvurderlige.

Forfatterintroduksjon:

Felix Hooker er en datagjenopprettingsekspert innen DataNumen, Inc., som er verdensledende innen datagjenopprettingsteknologier, inkludert rar-fiks og sql-programvareprodukter. For mer informasjon besøk www.datanumen. Med

Kommentarer er stengt.