Computer >> Hướng Dẫn Máy Tính >  >> Phần Mềm >> Office

Tự động làm mới Workbook Excel đóng: 2 phương pháp đơn giản

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)