วิธีอัปเดตแผ่นงาน Excel เป็นระยะด้วยตัวจับเวลา VBA

แบ่งปันเลย:

บทความนี้แสดงวิธีรีเฟรชเวิร์กชีตหรือแผนภูมิในช่วงเวลาปกติ แบบฝึกหัดนี้สร้างตัวจับเวลาที่รีเฟรชเวิร์กชีตทุก ๆ หนึ่งนาทีซึ่งสะท้อนถึงการเปลี่ยนแปลงในแหล่งข้อมูล

บทความนี้ถือว่าผู้อ่านมี Ribbon ของนักพัฒนาปรากฏอยู่และคุ้นเคยกับ VBA Editor มิฉะนั้นโปรดใช้“ แท็บนักพัฒนา Excel” ของ Google หรือ“ หน้าต่างรหัส Excel”

ตัวอย่างของสมุดงานที่ใช้ในแบบฝึกหัดนี้สามารถพบได้ Good Farm Animal Welfare Awards.

การใช้การรายงานแบบไดนามิกอาจเป็น:

  • อ่านฐานข้อมูลเฉพาะที่มาพร้อมกับระบบโทรศัพท์ของบริษัท เพื่อวิเคราะห์การโทร
  • สร้างหมายเลขสุ่มทุกๆ 15 นาทีเพื่อวัตถุประสงค์ในการรับรางวัลหรือการจับฉลาก
  • ส่งอีเมลอัตโนมัติจากฐานข้อมูลในพื้นที่ของคุณเมื่อถึงระดับที่กำหนด (ที่นี่ตัวจับเวลาจะตัดสินใจว่าจะเริ่มกระบวนการหรือไม่ขึ้นอยู่กับระดับที่ทำได้)

หรือสิ่งที่เราจะใช้:

  • แสดงอัตราแลกเปลี่ยน USD / EUR ล่าสุดจากอินเทอร์เน็ต

ข้อมูลถูกดึงมาจากไฟล์ เว็บไซต์ Yahoo Finance ทุก ๆ หนึ่งนาที เมื่อทดสอบสำเร็จแล้วควรเปลี่ยนช่วงเวลาการประมวลผลที่นานขึ้น

อินเทอร์เฟซ

เปิดสมุดงานใหม่

ตั้งชื่อแผ่นงานแรกว่า "Display" เนื่องจากตาราง D8 ถึง E11 จะถูกเติมจากเว็บจึงไม่จำเป็นต้องป้อนค่าหรือส่วนหัวของแถว ส่วนที่เหลือเป็นทางเลือกเตรียมอินเทอร์เฟซ

รหัส

เปิดหน้าต่างรหัส VBA และใส่โมดูล คัดลอกโค้ดด้านล่างลงในโมดูล

เหตุการณ์ Auto_Open จะเริ่มตัวจับเวลาเมื่อเปิดเวิร์กบุ๊ก และจะหยุดเมื่อปิดเวิร์กบุ๊ก เว้นแต่ว่านักพัฒนาจะขัดจังหวะการทำงานของโค้ดในระหว่างการพัฒนารหัส 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

ผลลัพท์

ทุกๆ n นาทีตารางในแผ่นงาน“ แสดง” จะได้รับการอัปเดตจากเว็บไซต์ Yahoo อ้างอิงเว็บไซต์ของ Microsoft สำหรับการเชื่อมต่อข้อมูลที่ซับซ้อนมากขึ้น

การกู้คืนสมุดงานที่เสียหาย

โปรแกรม Excel อาจเกิดอาการขัดข้องในเวลาที่ไม่คาดคิด ซึ่งอาจเกี่ยวข้องกับการขาดแคลนทรัพยากร ในกรณีเช่นนี้ ไฟล์ต้นฉบับอาจเสียหายอย่างถาวรและไม่สามารถเปิดใหม่ได้ หากไม่มีการสำรองข้อมูลบ่อยๆ เครื่องมือในการกู้คืนจึงมีความสำคัญมาก Excel เสียหาย ไฟล์จะมีค่า

บทนำผู้เขียน:

Felix Hooker เป็นผู้เชี่ยวชาญด้านการกู้คืนข้อมูลใน DataNumen, Inc. ซึ่งเป็นผู้นำระดับโลกด้านเทคโนโลยีการกู้คืนข้อมูล ได้แก่ การแก้ไขแรร์ และผลิตภัณฑ์ซอฟต์แวร์กู้คืน sql ดูข้อมูลเพิ่มเติมได้ที่ wwwdatanumenด้วย.

แบ่งปันเลย:

ความเห็นถูกปิด