Hơn 20 cách Save File bằng VBA Code cực kì đơn giản - ự học Excel VBA
Trong bài này mình sẽ đưa ra 20 cách lưu file (Save File) bằng lệnh VBA, phương pháp này thường dùng để thay thế cho cách làm thủ công, đó là nhấn phím tắt Ctrt + S hoặc click File -> Save. Để tránh trường hợp người dùng quên lưu lại nội dung các file Excel đã mở thì ta sẽ sử dụng hai lệnh ...
Trong bài này mình sẽ đưa ra 20 cách lưu file (Save File) bằng lệnh VBA, phương pháp này thường dùng để thay thế cho cách làm thủ công, đó là nhấn phím tắt Ctrt + S
hoặc click File -> Save.
Để tránh trường hợp người dùng quên lưu lại nội dung các file Excel đã mở thì ta sẽ sử dụng hai lệnh Save và SaveAs trong VBA để lưu tự động.
Cũng có một số trường hợp bạn code VBA và cần mở một file nào đó để lấy nội dung, sau đó sửa nội dung và lưu file lại. Nếu để người dùng làm bằng tay thì có khả năng bị sai, vì vậy ta dùng code sẽ an toàn và chính xác hơn.
1. Lệnh Save trong VBA
Lệnh Save trong VBA sẽ lưu file Excel tương tự như cách nhấp vào biểu tượng Save hoặc sử dụng phím tắt Lưu (CTRL + S).
Lưu một file
Đây là cách lưu đơn giản và thường được sử dụng nhất. Ta sẽ truyền vào tên của file cần lưu.
Workbooks("savefile.xlsm").save
Lưu file đang active
Dành cho trường hợp bạn đang mở nhiều file.
ActiveWorkbook.save
Lưu tất cả file đang mở
Dim wb as workbook For Each wb In Application.Workbooks wb.Save Next wb
Lưu các file ở trạng thái ReadOnly
File ở trạng thái ReadOnly là những file bạn đã mở nhưng không làm việc.
Dim wb as workbook For Each wb In Application.Workbooks If not wb ReadOnly then wb.Save End if Next wb
Lưu file được lưu bởi một biến
Dim wb as workbook set wb = workbooks("savefile.xlsm") wb.save
Lưu file được lưu tên trong chuỗi
Dim wbstring as string wbstring = "savefile.xlsm" workbooks(wbstring).save
Lưu file theo thứ tự mở file
workbooks(1).save
Lưu file với tên file nằm trong một cell nào đó
Dim wbstring as string wbstring = activeworkbook.sheets("sheet1").range("wb_save").value workbooks(wbstring).save
2. Lệnh Save As trong VBA
Save As là tính năng lưu vào một file mới, còn Save là lưu ghi đè trên file đã lưu.
Lệnh này có công dụng giống như việc thao tác trên menu File -> Save As của Excel.
Cách dùng thì không khác gì so với lệnh Save, có điều bạn phải truyền thêm tham số tên file cần lưu.
Cú pháp như sau:
Object.SaveAs(FileName, FileFormat, Password, WriteResPassword, _ ReadOnlyRecommended, CreateBackup, AccessMode, ConflictResolution, _ AddToMru,TextCodepage, TextVisualLayout, Local)
Mình sẽ không giải thích các tham số, thay vào đó sẽ tìm hiểu thông qua những ví dụ dưới đây.
Save As trên cùng thư mục
ActiveWorkbook.SaveAs Filename:= "new" ' Hoặc ActiveWorkbook.SaveAs "new" ' Hoặc Dim wbstring as string wbstring = "new" ActiveWorkbook.SaveAs Filename:= wbstring
Save As ở thư mục mới
ActiveWorkbook.SaveAs Filename:= "C: ew" ' Hoặc Dim wbstring as string wbstring = "C: ew" ActiveWorkbook.SaveAs Filename:= wbstring=
Save As ở thư mục mới có chọn đuôi mở rộng
ActiveWorkbook.SaveAs Filename:= "C: ew.xlsx" ' Hoặc Dim wbstring as string wbstring = "C: ew.xlsx" ActiveWorkbook.SaveAs Filename:= wbstring
Bạn cũng có thể sử dụng kết hợp File Format để chỉ định dạng của file.
.xlsx = 51 '(52 for Mac) .xlsm = 52 '(53 for Mac) .xlsb = 50 '(51 for Mac) .xls = 56 '(57 for Mac)
Ví dụ: Lưu dưới dạng mở rộng .xlsx
trên Windows
ActiveWorkbook.SaveAs Filename:= "C: ew", FileFormat:= 51
Save As và đặt mật khẩu mở file
ActiveWorkbook.SaveAs Filename:= "C: ew.xlsx", Password:= "password"
Save As và đặt mật khẩu ghi file
Nếu mật khẩu bạn nhập để mở file không đúng thì nó sẽ chuyển sang chế độ Read Only.
ActiveWorkbook.SaveAs Filename:= "C: ew.xlsx", WriteRes:= "password"
Save As chế độ read only
ActiveWorkbook.SaveAs Filename:= "C: ew.xlsx", ReadOnlyRecommended:= TRUE
3. Một vài ví dụ về Save File khác trong VBA
Tạo hộp thoại Save As
Application.GetSaveAsFilename
Tạo hộp thoại Save As kèm tên file mặc định
Application.GetSaveAsFilename InitialFilename:="test.xlsx"
Tạo và lưu file mới
Dim wb As Workbook Set wb = Workbooks.Add Application.DisplayAlerts = False wb.SaveAs Filename:=”c:Test1.xlsx” Application.DisplayAlerts = True
Xóa cảnh báo khi save
Khi bạn làm việc với tính năng Save trong VBA, bạn có thể gặp nhiều cảnh báo hoặc Lời nhắc khi lưu. Để tắt những điều này thì hãy thêm dòng mã này:
Application.DisplayAlerts=False
Mở lại sẽ là:
Application.DisplayAlerts=True
Trên là tập hợp hơn 20 trường hợp Save File Excel bằng VBA code. Đây là nội dung mình sưu tầm lại ở các trang nước ngoài trên mạng.