บ่อยครั้งผู้ใช้ต้องการ 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 โดยไม่เปิดไฟล์

ขั้นตอน: ใช้ไฟล์ 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

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 ตรวจสอบผลลัพธ์โดยเปิดไฟล์ใหม่

⧭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

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 วิธี)