Cách chuyển nhiều file Excel sang PDF, CSV... tự động nhanh chóng

Nội dung được viết bởi Bến Hà Trương

Như chúng ta đã biết, tính năng Save As của Microsoft Excel có thể lưu trang tính đang hoạt động dưới dạng tệp PDF, CSV,... Nhưng làm thế nào để lưu toàn bộ file làm việc dưới dạng tệp PDF trong Excel? Còn thao tác để chuyển file excel sang CSV và ngược lại thì như thế nào?

Trong bài viết này, chúng ta sẽ tìm hiểu cách chuyển nhiều file excel sang PDF, CSV,... và ngược lại.

Cách chuyển đổi 1 file Excel sang PDF

Chúng ta có thể chuyển đổi một tệp Excel sang tệp PDF với tính năng Save As trong Excel. Bạn có thể làm như sau:

Bước 1. Mở tệp Excel và nhấp vào File (hoặc nút Office) > Save As.

Chọn File trong Excel
Chọn File
Chọn save as trong Excel
Chọn save as

Bước 2. Trong hộp thoại Opening Save As, bạn cần:

  • Chọn một thư mục để lưu tệp PDF;
  • Đặt tên tệp PDF trong hộp File name;
  • Nhấp vào hộp Save As type và chọn PDF (* .pdf) từ danh sách thả xuống;
  • Nhấp vào nút Options.
cách chuyển file excel sang pdf tất cả các sheet
cách chuyển file excel sang pdf tất cả các sheet

 Bước 3. Trong hộp thoại Options, vui lòng check vào tùy chọn All và Entire workbook , sau đó nhấp vào nút OK .

cách chuyển file excel nhiều sheet sang pdf
cách chuyển file excel nhiều sheet sang pdf

Bước 4. Nhấp vào nút Save trong hộp thoại Save As .

Cách chuyển nhiều file Excel sang PDF, CSV... tự động nhanh chóng

Như vậy, bảng tính Excel của bạn đã được lưu dưới dạng tệp PDF và được lưu trong thư mục được chỉ định.

Cách chuyển nhiều file Excel sang PDF

Bước 1: Khởi động Microsoft Excel và nhấn tổ hợp phím Alt + F11 để mở cửa sổ Microsoft Visual Basic for Applications.

Bước 2: Trong cửa sổ Visual Basic for Applications, chọn Insert > Module để tạo một Module mới.

cách chuyển nhiều file excel sang pdf bằng vba
cách chuyển nhiều file excel sang pdf bằng vba

Bước 3: Sao chép mã bên dưới và dán nó vào cửa sổ Module mới đã tạo.

Sao chép mã VBA vào module mới
Sao chép mã VBA vào module mới

Dưới đây là một đoạn mã VBA để chuyển nhiều file excel sang PDF (.pdf):

Sub ConvertExcelToPDF()
    Dim SourceFilePath As String
    Dim SourceWorkbook As Workbook
    Dim ws As Worksheet
    
    ' Set the source file path
    SourceFilePath = "C:\Path\To\Source\Folder\"
    
    ' Open the source workbook
    Set SourceWorkbook = Workbooks.Open(SourceFilePath)
    
    ' Make sure the source workbook contains at least one worksheet
    If SourceWorkbook.Worksheets.Count > 0 Then
        ' Change the worksheet name as needed
        Set ws = SourceWorkbook.Worksheets(1)
        
        ' Create PDF format from the worksheet and save it in the same folder
        ws.ExportAsFixedFormat Type:=xlTypePDF, _
            Filename:=Left(SourceFilePath, Len(SourceFilePath) - 5) & ".pdf", _
            Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
    End If
    
    ' Close the source workbook without saving changes
    SourceWorkbook.Close SaveChanges:=False
    
    MsgBox "Conversion to PDF completed."
End Sub

Bước 4: Bạn có thể chạy mã bằng cách nhấn F5 hoặc chọn "Run" từ menu "Run".

Tệp PDF mới sẽ được lưu vào cùng thư mục với tệp gốc, bạn có thể vào thư mục chứa tệp gốc ở File Explorer để tìm nó.

cách chuyển nhiều file excel sang pdf đã xong
Đã xong cách chuyển nhiều file excel sang pdf

Lưu ý khi xuất file Excel sang PDF hàng loạt bằng VBA: 

Bạn cần thay đổi giá trị của biến SourceFolderPath để chỉ định thư mục chứa các tệp Excel bạn muốn chuyển đổi thành tệp PDF.  Dưới đây là phần cần thay đổi trong đoạn mã:

SourceFolderPath = “C:\Path\To\Source\Folder\”

Thay "C:\Path\To\Source\Folder\" bằng đường dẫn đến thư mục chứa các tệp Excel mà bạn muốn chuyển đổi sang tệp PDF. Cách lấy đường dẫn của thư mục hoặc tệp trên máy tính của bạn như sau:

  • Trên File Explorer ở máy tính, Click chuột vào tệp/ thư mục muốn chuyển nhiều sheet Excel sang PDF.
  • Nhấn vào Copy Path là xong. Đường dẫn đến thư mục chứa tệp cần chuyển định dạng đã được sao chép vào bộ nhớ tạm.
Cách lấy đường dẫn đến thư mục trên máy tính
Cách lấy đường dẫn đến thư mục trên máy tính

Sau khi thay đổi giá trị này, bạn có thể sử dụng đoạn mã VBA để xuất nhiều sheet Excel sang PDF trong thư mục đã chỉ định.

Cách chuyển đổi hàng loạt file Excel sang định dạng CSV với VBA

Tương tự như cách chuyển nhiều sheet trong Excel sang PDF, chúng ta có thể chuyển đổi các sheet trong 1 file Excel thành tệp CSV bằng chức năng Save as, nhưng bạn có thể biết cách chuyển đổi hàng loạt nhiều tệp Excel thành các tệp CSV riêng biệt không? 

Sau đây, chúng tôi sẽ giới thiệu mã VBA để chuyển đổi hàng loạt tất cả các tệp Excel trong một thư mục sang tệp CSV.

Để thực hiện, bạn vui lòng thực hiện các bước sau:

  • Bật Excel và nhấn các phím Alt + F11 để mở cửa sổ Microsoft Visual Basic for Applications .
  • Nhấp vào  Insert > Module để tạo một Module mới.
  • Sao chép mã bên dưới và dán chúng vào cửa sổ Module mới:
Sub WorkbooksSaveAsCsvToFolder()
    Dim xObjWB As Workbook
    Dim xObjWS As Worksheet
    Dim xStrEFPath As String
    Dim xStrEFFile As String
    Dim xObjFD As FileDialog
    Dim xObjSFD As FileDialog
    Dim xStrSPath As String
    Dim xStrCSVFName As String
    
    Application.ScreenUpdating = False
    Application.EnableEvents = False
    Application.Calculation = xlCalculationManual
    
    On Error Resume Next
    Set xObjFD = Application.FileDialog(msoFileDialogFolderPicker)
    xObjFD.AllowMultiSelect = False
    xObjFD.Title = "Kutools for Excel - Select a folder which contains Excel files"
    
    If xObjFD.Show <> -1 Then Exit Sub
    
    xStrEFPath = xObjFD.SelectedItems(1) & "\"
    
    Set xObjSFD = Application.FileDialog(msoFileDialogFolderPicker)
    xObjSFD.AllowMultiSelect = False
    xObjSFD.Title = "Kutools for Excel - Select a folder to locate CSV files"
    
    If xObjSFD.Show <> -1 Then Exit Sub
    
    xStrSPath = xObjSFD.SelectedItems(1) & "\"
    xStrEFFile = Dir(xStrEFPath & "*.xls*")
    
    Do While xStrEFFile <> ""
        Set xObjWB = Workbooks.Open(Filename:=xStrEFPath & xStrEFFile)
        
        xStrCSVFName = xStrSPath & Left(xStrEFFile, InStr(1, xStrEFFile, ".") - 1) & ".csv"
        
        xObjWB.SaveAs Filename:=xStrCSVFName, FileFormat:=xlCSV
        xObjWB.Close SaveChanges:=False
        xStrEFFile = Dir
    Loop
    
    Application.Calculation = xlCalculationAutomatic
    Application.EnableEvents = True
    Application.ScreenUpdating = True
End Sub
  • Nhấn phím F5 , chọn thư mục chứa các tệp Excel bạn muốn chuyển đổi sang tệp CSV trong hộp thoại bật lên đầu tiên.
nhấn F5 để chạy mã VBA
nhấn F5 để chạy mã VBA
  • Nhấp vào OK, sau đó trong hộp thoại bật lên thứ hai, chọn thư mục để đặt tệp CSV.
Chọn thư mục để lưu tệp CSV
Chọn thư mục để lưu tệp CSV
  • Nhấn OK, bây giờ các tệp Excel trong thư mục đã được chuyển đổi thành tệp CSV và được lưu trong một thư mục khác.
Cách tệp Excel đã được chuyển sang dạng CSV
Cách tệp Excel đã được chuyển sang dạng CSV

Xem thêm: Cách khắc phục file CSV bị lỗi font khi mở trong Excel

Cách chuyển đổi hàng loạt file CSV sang XLS(X) trong Excel

Để chuyển đổi tệp CSV sang tệp XlS hoặc XLSX, bạn có thể áp dụng cách lưu ở dạng khác bằng Save as. Tuy nhiên, để chuyển đổi nhiều tệp CSV sang tệp XLS hoặc XLSX từ một thư mục rất tốn thời gian nếu làm thủ công. 

Đừng lo lắng, chúng tôi sẽ giới thiệu một mã macro để nhanh chóng chuyển đổi hàng loạt tất cả các tệp CSV sang tệp XLS hoặc XLSX từ một thư mục.

Chuyển tệp từ CSV sang XLS:

Để chuyển đổi nhiều tệp CSV từ một thư mục thành tệp XLS, bạn có thể thực hiện theo các bước sau:

Bước 1. Bật sổ làm việc mới, nhấn các phím Alt + F11 để mở cửa sổ Microsoft Visual Basic for Applications và nhấp vào Insert > Module.

Tạo module mới
Tạo module mới

Lưu ý: Đóng tất cả các tệp CSV bạn muốn chuyển đổi sang XLS

Bước 2. Sau đó, dán mã macro bên dưới vào tập lệnh Module và nhấn phím F5 để chạy mã.

Sub CSVtoXLS()
    Dim xFd As FileDialog
    Dim xSPath As String
    Dim xCSVFile As String
    Dim xWsheet As String
    Application.DisplayAlerts = False
    Application.StatusBar = True
    xWsheet = ActiveWorkbook.Name
    Set xFd = Application.FileDialog(msoFileDialogFolderPicker)
    xFd.Title = "Select a folder:"
    If xFd.Show = -1 Then
        xSPath = xFd.SelectedItems(1)
    Else
        Exit Sub
    End If
    If Right(xSPath, 1) <> "\" Then xSPath = xSPath & "\"
    xCSVFile = Dir(xSPath & "*.csv")
    Do While xCSVFile <> ""
        Application.StatusBar = "Converting: " & xCSVFile
        Workbooks.Open Filename:=xSPath & xCSVFile
        ActiveWorkbook.SaveAs Replace(xSPath & xCSVFile, ".csv", ".xls", vbTextCompare), xlNormal
        ActiveWorkbook.Close
        Windows(xWsheet).Activate
        xCSVFile = Dir
    Loop
    Application.StatusBar = False
    Application.DisplayAlerts = True
End Sub

Bước 3. Trong hộp thoại bật ra, chọn thư mục được chỉ định chứa các tệp CSV bạn muốn chuyển đổi

Chọn thư mục chứa tệp CSV muốn đổi sang xls
Chọn thư mục chứa tệp CSV muốn đổi sang xls

Bước 4. Nhấp vào OK , tất cả các tệp CSV trong thư mục đã chọn đã được chuyển đổi thành tệp XLS.

các tệp csv đã chuyển thành xls
các tệp csv đã chuyển thành xls

Chuyển đổi tệp CSV sang XLSX:

Nếu bạn muốn chuyển đổi tệp CSV sang tệp XLSX, bạn sử dụng mã VBA bên dưới và làm tương tự như các bước ở trên:

Sub CSVtoXLS()
    Dim xFd As FileDialog
    Dim xSPath As String
    Dim xCSVFile As String
    Dim xWsheet As String
    
    Application.DisplayAlerts = False
    Application.StatusBar = True
    xWsheet = ActiveWorkbook.Name
    
    Set xFd = Application.FileDialog(msoFileDialogFolderPicker)
    xFd.Title = "Select a folder:"
    
    If xFd.Show = -1 Then
        xSPath = xFd.SelectedItems(1)
    Else
        Exit Sub
    End If
    
    If Right(xSPath, 1) <> "\" Then
        xSPath = xSPath & "\"
    End If
    
    xCSVFile = Dir(xSPath & "*.csv")
    
    Do While xCSVFile <> ""
        Application.StatusBar = "Converting: " & xCSVFile
        Workbooks.Open Filename:=xSPath & xCSVFile
        ActiveWorkbook.SaveAs Replace(xSPath & xCSVFile, ".csv", ".xlsx", vbTextCompare), xlOpenXMLWorkbook
        ActiveWorkbook.Close SaveChanges:=False
        Windows(xWsheet).Activate
        xCSVFile = Dir
    Loop
    
    Application.StatusBar = False
    Application.DisplayAlerts = True
End Sub

Xem thêm: 

Cách chuyển Excel sang ảnh để chia sẻ tài liệu đến mọi người nhanh chóng

Cách mở file CSV bằng Excel đơn giản và nhanh chóng

Kết luận

Hy vọng với bài viết này, bạn đã biết cách chuyển nhiều file Excel sang PDF và CSV và ngược lại chuyển PDF sang Excel. Bên cạnh đó, để không bỏ lỡ những mẹo và thủ thuật tin học văn phòng hữu ích khác, hãy xem thêm các bài viết mới nhất của Gitiho ngay hôm nay.

Khóa học phù hợp với bất kỳ ai đang muốn tìm hiểu lại Excel từ con số 0. Giáo án được Gitiho cùng giảng viên thiết kế phù hợp với công việc thực tế tại doanh nghiệp, bài tập thực hành xuyên suốt khóa kèm đáp án và hướng dẫn giải chi tiết. Tham khảo ngay bên dưới!

5/5 - (1 bình chọn)

5/5 - (1 bình chọn)

0 thảo luận

@ 2020 - Bản quyền của Công ty cổ phần công nghệ giáo dục Gitiho Việt Nam
Giấy chứng nhận Đăng ký doanh nghiệp số: 0109077145, cấp bởi Sở kế hoạch và đầu tư TP. Hà Nội
Giấy phép mạng xã hội số: 588, cấp bởi Bộ thông tin và truyền thông