Kā periodiski atjaunināt Excel darblapu, izmantojot VBA taimeri

Kopīgot tūlīt:

Šajā rakstā ir parādīts, kā regulāri atsvaidzināt darblapu vai diagrammu. Šis uzdevums izveido taimeri, kas katru minūti atsvaidzina darblapu, atspoguļojot izmaiņas avota datos.

Šajā rakstā tiek pieņemts, ka lasītājam ir parādīta izstrādātāja lente un viņš ir iepazinies ar VBA redaktoru. Ja nē, lūdzu, Google “Excel izstrādātāja cilne” vai “Excel koda logs”.

Var atrast šajā vingrinājumā izmantotās darbgrāmatas piemēru šeit.

Dinamiskās atskaites var izmantot:

  • Jūsu uzņēmuma tālruņu sistēmas komplektācijā iekļautās patentētās datubāzes nolasīšana zvanu analīzei.
  • Ik pēc 15 minūtēm ģenerējiet nejaušu skaitli balvu vai izlozes nolūkos.
  • Automātiski nosūtīt e-pastus no vietējās datu bāzes, kad ir sasniegti noteikti līmeņi. (šeit taimeris izlems, vai palaist procesu vai ne, pamatojoties uz sasniegtajiem līmeņiem).

vai to, kuru mēs izmantosim:

  • Parādiet jaunāko USD / EUR maiņas kursu no interneta.

Dati tiek iegūti no Yahoo Finance vietne ik pēc minūtes. Pēc veiksmīgas pārbaudes ir jāaizstāj ilgāks apstrādes intervāls.

Saskarne

Atveriet jaunu darbgrāmatu;

Nosauciet pirmo lapu “Displejs”. Tā kā tabulas D8 līdz E11 tiks aizpildītas no tīmekļa, vērtības vai rindu virsraksti nav jāievada. Pārējais nav obligāts.Sagatavojiet saskarni

Kodekss

Atveriet VBA koda logu un ievietojiet moduli. Kopējiet zemāk esošo kodu modulī.

Notikums Auto_Open iedarbina taimeri, kad tiek atvērta darbgrāmata, un apstājas, kad tā tiek aizvērta, ja vien izstrādātājs izstrādes laikā nepārtrauc koda izpildi.VBA kods

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

Rezultāts

Ik pēc n minūtēm tabula lapā “Displejs” tiks atjaunināta no Yahoo vietnes. Sarežģītākus datu savienojumus skatiet Microsoft vietnē.

Bojātu darbgrāmatu atkopšana

Ir zināms, ka programma Excel negaidītos brīžos avarē, iespējams, resursu trūkuma dēļ. Šādos gadījumos avota fails var tikt neatgriezeniski bojāts un to nevar atkārtoti atvērt. Ja netiek regulāri veidotas dublējumkopijas, ir nepieciešams rīks atkopšanai. sabojāts Excel faili būtu nenovērtējami.

Autora ievads:

Fēlikss Hukers ir datu atkopšanas eksperts DataNumen, Inc., kas ir pasaules līderis datu atkopšanas tehnoloģiju, tostarp rar labojums un SQL atkopšanas programmatūras produkti. Lai iegūtu vairāk informācijas, apmeklējiet vietni www.datanumen. Ar

Kopīgot tūlīt:

Komentāri ir slēgti.