Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> ซอฟต์แวร์ >> Office

Refresh Closed Excel Workbooks อัตโนมัติ: 2 วิธีง่าย

บ่อยครั้งผู้ใช้ต้องการ Auto-refresh ไฟล์ Excel ที่มี Volatile Functions หรือ Query Connections เฉพาะ VBA Macros เท่านั้นที่ Auto-refresh ไฟล์ Excel โดยไม่ต้องเปิด Query Connection สำหรับ Auto-refresh ไม่รองรับ Auto-refresh สำหรับไฟล์ที่ปิดอยู่ Query Connection Properties สามารถ Auto-refresh ข้อมูลของไฟล์ Excel ที่เปิดอยู่หลังช่วงเวลาที่กำหนด กระบวนการคือ ไฟล์ xlsm อีกไฟล์หนึ่ง รัน Macro เพื่อ Auto-refresh ไฟล์ Excel ที่ปิดอยู่ซึ่งได้รับมอบหมาย ในบทความนี้ สาธิตการใช้ 2 Macros เพื่อ Auto Refresh Excel File โดยไม่เปิดมัน

ดาวน์โหลด Excel Workbook

ไฟล์ Macro Excel ช่วย (Helper) รัน Macro เพื่อ Auto-refresh ไฟล์เป้าหมาย (Target File หรือ Files)

2 วิธีง่าย Auto Refresh Excel File โดยไม่ต้องเปิด

ไฟล์ Excel อีกไฟล์หนึ่ง รัน Macros ที่เปิดและปิดไฟล์ Excel ที่ได้รับมอบหมาย เพื่อ Auto-refresh โดยการเปิด เนื่องจากไฟล์ Excel "Countdown" มี Functions ที่อัปเดตเมื่อเปิดไฟล์

อ่านส่วนด้านล่างเพื่อสามารถ Auto-Refresh Excel Files Automatically โดยไม่เปิดพวกเขา

วิธีที่ 1: ใช้ VBA Macro Auto Refresh ไฟล์ Excel เฉพาะเจาะจง โดยไม่เปิด

ไฟล์ Excel Countdown มี ฟังก์ชัน TODAY() และ NOW() สำหรับนับถอยหลัง Real-time ต้องการ Auto-refresh ค่าของ Functions โดยไม่เปิดไฟล์

Refresh Closed Excel Workbooks อัตโนมัติ: 2 วิธีง่าย

ขั้นตอน: ใช้ไฟล์ Excel อื่น Insert Visual Basic Module (Alt+F11 > Insert > Module หรือ Developer Tab > Visual Macro > Insert > Module) วาง Macro ต่อไปนี้ใน Module

Public Sub AutoRefreshClosedFile()
FilePath = "C:\Users\maruf\Desktop\Softeko\Auto Refresh Excel File Without Opening\Countdown"
With Application
    .DisplayAlerts = False
    .ScreenUpdating = False
    .EnableEvents = False
    .AskToUpdateLinks = False
End With
Workbooks.Open FilePath
ActiveWorkbook.UpdateLink Name:=ActiveWorkbook.LinkSources
ActiveWorkbook.Close True
With Application
    .DisplayAlerts = True
    .ScreenUpdating = True
    .EnableEvents = True
    .AskToUpdateLinks = True
End With
End Sub

Refresh Closed Excel Workbooks อัตโนมัติ: 2 วิธีง่าย

Macro Explanation

  • ตั้งค่า File Path ในอุปกรณ์สำหรับ Auto-refresh
  • VBA WITH Statement รันหลายคำสั่งเพื่อไม่ให้ไฟล์เปลี่ยนแปลง
With Application
    .DisplayAlerts = False
    .ScreenUpdating = False
    .EnableEvents = False
    .AskToUpdateLinks = False
End With
  • Open เปิดไฟล์ที่กำหนด
  • Close ปิดไฟล์ที่เปิด
  • VBA WITH อีกอัน อัปเดตไฟล์หลัง Auto-refresh

  • กด F5 รัน Macro Excel เปิด Countdown.xlsx เนื่องจากมี Volatile Functions (TODAY() และ NOW()) ไฟล์ Auto-refresh เมื่อเปิดใน Background ตรวจสอบผลลัพธ์โดยเปิดไฟล์ใหม่

Refresh Closed Excel Workbooks อัตโนมัติ: 2 วิธีง่าย

⧭Tips: กรณีต้องการ Auto-refresh ไฟล์ Excel ที่เปิดอยู่ ให้ใช้ Macro ต่อไปนี้ หรือแค่บรรทัด Macro พร้อมคำสั่ง เปลี่ยน Range (เช่น A1:D14) และเวลา Auto-refresh (เช่น "s", 30) โดยใช้ Application.OnTime ใน Macro

Sub AutoCalculationRange()
Range("A1:D14").Calculate
Application.OnTime DateAdd("s", 30, Now), "AutoCalculationRange"
End Sub

อ่านเพิ่มเติม: วิธี Refresh Excel Sheet อัตโนมัติด้วย VBA (4 วิธี)

บทความคล้ายกัน

  • วิธี Auto Refresh Pivot Table โดยไม่ใช้ VBA ใน Excel (3 วิธีฉลาด)
  • [Fixed!] Excel Cells Not Updating Unless Double Click (5 Solutions)
  • วิธี Refresh Chart ใน Excel (2 วิธีมีประสิทธิภาพ)
  • วิธี Auto Update Pivot Table เมื่อ Source Data เปลี่ยน

วิธีที่ 2: รัน Auto Refresh สำหรับ Excel Files ทั้งหมดในโฟลเดอร์

ทางเลือกของ วิธีที่ 1 ผู้ใช้สามารถ Auto-refresh ไฟล์ Excel ทั้งหมดในโฟลเดอร์ การรัน Macro นี้จะเปิด ดังนั้น Auto-refresh ไฟล์ Excel ภายในโฟลเดอร์ที่กำหนด

ขั้นตอน: แทนที่ Macro ก่อนหน้าด้วย Macro ต่อไปนี้

Public Sub AutoRefreshFolder()
Dim mrf As Object
Dim mfolder As Object
Dim mfile As Object
mPath = "C:\Users\maruf\Desktop\Softeko\Auto Refresh Excel File Without Opening\"
Set mrf = CreateObject("Scripting.FileSystemObject")
Set mfolder = mrf.GetFolder(mPath)
With Application
    .DisplayAlerts = False
    .ScreenUpdating = False
    .EnableEvents = False
    .AskToUpdateLinks = False
End With
For Each mfile In mfolder.Files
    If Right(mfile.Name, 4) = "xlsx" Or Right(mfile.Name, 3) = "xlsx" Then
        Workbooks.Open mPath & mfile.Name
        ActiveWorkbook.UpdateLink Name:=ActiveWorkbook.LinkSources
        ActiveWorkbook.Close True
    End If
Next
With Application
    .DisplayAlerts = True
    .ScreenUpdating = True
    .EnableEvents = True
    .AskToUpdateLinks = True
End With
End Sub

Refresh Closed Excel Workbooks อัตโนมัติ: 2 วิธีง่าย

Macro Explanation

  • อ้างอิงตัวแปรเป็น Object
Dim mrf As Object
Dim mfolder As Object
Dim mfile As Object
  • ตั้งค่า mPath ให้โฟลเดอร์เฉพาะ
  • VBA WITH Statement รันหลายคำสั่งโดยไม่เปลี่ยนไฟล์
  • VBA FOR และ IF วนลูปแต่ละไฟล์ xlsx เพื่อเปิดและปิด Remote
 For Each mfile In mfolder.Files
    If Right(mfile.Name, 4) = "xlsx" Or Right(mfile.Name, 3) = "xlsx" Then
        Workbooks.Open mPath & mfile.Name
        ActiveWorkbook.UpdateLink Name:=ActiveWorkbook.LinkSources
        ActiveWorkbook.Close True
    End If
Next
  • สุดท้าย Macro Auto-refresh ไฟล์ด้วย VBA WITH

  • ไป Run > Run Sub/UserForm F5 Auto-refresh ไฟล์ในโฟลเดอร์ สำหรับไฟล์ที่เปิดอยู่ กด F9 Refresh Active Worksheet ผลลัพธ์คล้าย วิธีที่ 1

อ่านเพิ่มเติม: วิธี Auto Refresh Pivot Table โดยไม่ใช้ VBA ใน Excel (3 วิธีฉลาด)

สรุป

บทความนี้อภิปราย Macro Variants สำหรับ Auto-refresh Excel Files โดยไม่เปิด ใช้ Macro ที่อธิบายไว้ได้ หวังว่า Macro เหล่านี้จะเปิดไฟล์ xlsx และ Auto-refresh พวกเขา

ดูเว็บไซต์เก่งๆ ของเรา Exceldemy สำหรับบทความ Excel ที่น่าสนใจ

บทความเกี่ยวข้อง

  • [Solved]: Excel Formulas Not Updating Until Save (6 Possible Solutions)
  • วิธี Disable Background Refresh ใน Excel (2 วิธีสะดวก)
  • วิธี Refresh Pivot Table ใน Excel (4 วิธีมีประสิทธิภาพ)
  • VBA Refresh Pivot Table ใน Excel (5 ตัวอย่าง)
  • วิธี Auto Update ด้วย Interval 5 Seconds ใน Excel
  • Pivot Table Not Refreshing (5 Issues & Solutions)
  • วิธี Auto Refresh Pivot Table ใน Excel (2 วิธี)