Header Ads

Excel VBA - Cách chuyển hàng loạt file từ XLS sang XLSX


Để chuyển đổi nhiều file từ định dạng XLS sang XLSX bằng VBA, bạn có thể viết một đoạn mã VBA trong Excel để tự động thực hiện quá trình này. Dưới đây là hướng dẫn chi tiết và đoạn mã VBA cần thiết:

Hướng dẫn:

  1. Mở Excel và nhấn Alt + F11 để mở cửa sổ VBA Editor.
  2. Chèn một module mới bằng cách nhấn Insert > Module.
  3. Dán đoạn mã VBA sau vào module mới:
Sub ConvertXLS_XLSX()
    Dim wb As Workbook
    Dim sourceFolder As String
    Dim targetFolder As String
    Dim file As String

    ' Đường dẫn thư mục chứa các file .xls
    sourceFolder = "C:\path\to\xls\files\"
    ' Đường dẫn thư mục lưu các file .xlsx đã chuyển đổi
    targetFolder = "C:\path\to\save\xlsx\files\"

    ' Đảm bảo rằng các thư mục kết thúc bằng dấu gạch chéo
    If Right(sourceFolder, 1) <> "\" Then sourceFolder = sourceFolder & "\"
    If Right(targetFolder, 1) <> "\" Then targetFolder = targetFolder & "\"

    ' Lấy file đầu tiên với định dạng .xls trong thư mục nguồn
    file = Dir(sourceFolder & "*.xls")

    ' Duyệt qua tất cả các file .xls trong thư mục nguồn
    Do While file <> ""
        ' Mở file .xls
        Set wb = Workbooks.Open(sourceFolder & file)

        ' Lưu file dưới định dạng .xlsx
        wb.SaveAs targetFolder & Replace(file, ".xls", ".xlsx"), FileFormat:=xlOpenXMLWorkbook

        ' Đóng workbook
        wb.Close SaveChanges:=False

        ' Lấy file tiếp theo
        file = Dir
    Loop

    MsgBox "Chuyển đổi hoàn tất!"
End Sub

Hướng dẫn chi tiết:

  1. Đặt đường dẫn: Thay đổi giá trị của sourceFolder thành đường dẫn thư mục chứa các file .xlstargetFolder thành đường dẫn nơi bạn muốn lưu các file .xlsx đã chuyển đổi.
  2. Chạy macro: Nhấn F5 hoặc vào Run > Run Sub/UserForm trong VBA Editor để chạy đoạn mã này.

Script này sẽ:

  • Duyệt qua tất cả các file .xls trong thư mục chỉ định.
  • Mở từng file .xls.
  • Lưu lại dưới định dạng .xlsx trong thư mục đầu ra.
  • Đóng từng file sau khi lưu.

Sau khi quá trình hoàn tất, bạn sẽ nhận được thông báo "Chuyển đổi hoàn tất!".

No comments

Powered by Blogger.