Tải xuống Excel Workbook
File Macro Excel (xlsm) hỗ trợ chạy macro để tự động làm mới file mục tiêu (hoặc nhiều file) đang đóng.
2 cách dễ dàng tự động làm mới file Excel mà không cần mở
Một file Excel khác chạy macro mở và đóng file được chỉ định để làm mới (vì file chứa hàm volatile như TODAY(), NOW() cập nhật khi mở).
Phương pháp 1: Dùng VBA Macro tự động làm mới một file Excel cụ thể khi đóng
File Countdown.xlsx chứa hàm TODAY() và NOW() đếm ngược thời gian thực. Muốn làm mới giá trị hàm mà không mở file.
Các bước:
- Dùng một file Excel khác (file .xlsm) > Alt+F11 > Insert > Module (hoặc tab Developer > Visual Basic > Insert > Module).
- Dán macro sau vào 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
Giải thích Macro:
- Đặt FilePath trỏ đến file cần làm mới.
- Khối VBA WITH đầu: tắt cảnh báo, cập nhật màn hình, sự kiện, hỏi cập nhật liên kết -> không làm thay đổi file khi mở.
- Workbooks.Open mở file; ActiveWorkbook.UpdateLink cập nhật liên kết; ActiveWorkbook.Close True đóng và lưu thay đổi.
- Khối VBA WITH sau: bật lại các cài đặt.
- Nhấn F5 chạy macro. File Countdown.xlsx mở nền, làm mới hàm volatile, đóng và lưu. Mở lại file để kiểm tra kết quả.
💡 Mẹo: Nếu cần tự động làm mới file đang mở, dùng macro sau (thay đổi Range và thời gian):
Sub AutoCalculationRange()
Range("A1:D14").Calculate
Application.OnTime DateAdd("s", 30, Now), "AutoCalculationRange"
End Sub
Phương pháp 2: Thực thi tự động làm mới cho tất cả file Excel trong một thư mục
Thay macro phương pháp 1 bằng macro này để duyệt qua tất cả file .xlsx trong thư mục, mở, làm mới, đóng.
Các bước:
- Thay macro cũ bằng mã sau:
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
Giải thích Macro:
- Khai báo biến Object cho FileSystemObject, Folder, File.
- Đặt mPath trỏ đến thư mục chứa file cần làm mới.
- Khối WITH tắt các cài đặt ứng dụng.
- Vòng lặp For Each + If lọc file .xlsx (kiểm tra 3 hoặc 4 ký tự cuối) -> Mở -> UpdateLink -> Đóng lưu.
- Khối WITH bật lại cài đặt.
- Chạy macro (Run > Run Sub/UserForm F5). Các file trong thư mục được mở nền, làm mới, đóng. Kết quả tương tự phương pháp 1.
Kết luận
Bài viết thảo luận các biến thể macro để tự động làm mới file Excel mà không cần mở thủ công. Sử dụng macro phù hợp. Hy vọng hữu ích. Ghé thăm website tuyệt vời Exceldemy để tìm bài viết Excel thú vị.
Các bài viết liên quan
- [Đã giải quyết]: Công thức Excel không cập nhật cho đến khi lưu (6 giải pháp có thể)
- Cách tắt làm mới nền trong Excel (2 phương pháp tiện lợi)
- Cách làm mới Pivot Table trong Excel (4 cách hiệu quả)
- VBA làm mới Pivot Table trong Excel (5 ví dụ)
- Cách tự động cập nhật với khoảng cách 5 giây trong Excel
- Pivot Table không làm mới (5 vấn đề & giải pháp)
- Cách tự động làm mới Pivot Table trong Excel (2 phương pháp)