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.
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.
Bước 2. Trong hộp thoại Opening Save As, bạn cần:
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 .
Bước 4. Nhấp vào nút Save trong hộp thoại Save As .
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.
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.
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.
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ó.
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:
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.
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:
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
Xem thêm: Cách khắc phục file CSV bị lỗi font khi mở 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.
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
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.
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
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!