Hướng dẫn VBA này trình bày cách lưu tệp bằng lệnh Lưu và Lưu dưới dạng trong VBA.
Lưu sổ làm việc - VBA
Lệnh VBA Save lưu tệp Excel tương tự như cách nhấp vào biểu tượng Lưu hoặc sử dụng Phím tắt Lưu (CTRL + S).
Lưu một sổ làm việc đã chỉ định
Để lưu sổ làm việc, hãy tham chiếu đối tượng sổ làm việc và sử dụng lệnh Lưu.
1 | Sổ làm việc ("savefile.xlsm"). Lưu |
Lưu Sổ làm việc Hoạt động
Lưu ý: Đây là sổ làm việc đang hoạt động hiện tại từ mã VBA, khác với ThisWorkbook chứa mã đang chạy.
Lưu sổ làm việc nơi mã được lưu trữ
Lưu tất cả các sổ làm việc đang mở
Thao tác này sẽ lặp qua tất cả các sổ làm việc đang mở, lưu từng sổ một.
12345 | Làm mờ wb dưới dạng sổ làm việcĐối với mỗi wb trong ứng dụng.wb.SaveTuần tiếp theo |
Lưu tất cả các sổ làm việc đang mở chưa được mở ReadOnly
Lưu ý: việc mở sổ làm việc ở chế độ ReadOnly sẽ ngăn không cho lưu tệp.
Để lưu tệp, bạn sẽ cần sử dụng Save As và lưu tệp với một tên khác.
1234567 | Làm mờ wb dưới dạng sổ làm việcĐối với mỗi wb trong ứng dụng.Nếu không wb ReadOnly thìwb.SaveKết thúc nếuTuần tiếp theo |
Lưu sổ làm việc được xác định bởi một biến
Thao tác này sẽ lưu một sổ làm việc đã được gán cho một biến đối tượng sổ làm việc.
1234 | Làm mờ wb dưới dạng sổ làm việcset wb = workbooks ("savefile.xlsm")wb.save |
Lưu sổ làm việc được xác định bởi một biến chuỗi
Thao tác này sẽ lưu một sổ làm việc có tên đã được lưu vào một biến chuỗi.
1234 | Dim wbstring dưới dạng chuỗiwbstring = "savefile.xlsm"sổ làm việc (wbstring) .save |
Lưu sổ làm việc được xác định theo thứ tự nó được mở.
Lưu ý: Sổ làm việc đầu tiên được mở sẽ có 1, sổ thứ hai 2, v.v.
Lưu sổ làm việc dựa trên giá trị ô
Thao tác này sẽ lưu một sổ làm việc có tên được tìm thấy trong một giá trị ô.
1234 | Dim wbstring dưới dạng chuỗiwbstring = activeworkbook.sheets ("sheet1"). range ("wb_save"). valuesổ làm việc (wbstring) .save |
Lưu dưới dạng - VBA
Lệnh VBA Save As lưu tệp Excel dưới dạng tệp mới, tương tự như cách nhấp vào biểu tượng Lưu dưới dạng hoặc sử dụng Phím tắt Lưu dưới dạng (Alt> F> A).
Ở trên, chúng tôi đã xác định tất cả các cách để chỉ định sổ làm việc nào sẽ lưu. Bạn có thể sử dụng các phương pháp chính xác đó để xác định sổ làm việc khi sử dụng Lưu dưới dạng.
Save As hoạt động tương tự như Save, ngoại trừ bạn cũng cần chỉ định tên của tệp mới.
Trên thực tế, Save As có nhiều biến tiềm năng để xác định:
Cú pháp SaveAs:
123 | đối tượng sổ làm việc .SaveAs (FileName, FileFormat, Password, WriteResPassword, _ReadOnlyRecommended, CreateBackup, AccessMode, ConflictResolution, _AddToMru, TextCodepage, TextVisualLayout, Local) |
Dưới đây là mô tả đầy đủ về tất cả các đối số SaveAs. Bây giờ chúng ta sẽ tập trung vào các ví dụ phổ biến nhất.
Lưu ý: Các đối số này có thể được nhập dưới dạng chuỗi với dấu ngoặc đơn hoặc dưới dạng các biến được xác định.
Ví dụ về Lưu dưới dạng Cú pháp:
Sổ làm việc Lưu dưới dạng - Cùng một Thư mục
1 | ActiveWorkbook.SaveAs Filename: = "new" |
hoặc
1 | ActiveWorkbook.SaveAs "mới" |
hoặc
1234 | Dim wbstring dưới dạng chuỗiwbstring = "mới"ActiveWorkbook.SaveAs Filename: = wbstring |
Sổ làm việc Lưu dưới dạng - Thư mục Mới
1 | ActiveWorkbook.SaveAs Filename: = "C: \ new" |
hoặc
1234 | Dim wbstring dưới dạng chuỗiwbstring = "C: \ new"ActiveWorkbook.SaveAs Tên tệp: = wbstring = |
Sổ làm việc Lưu dưới dạng - Thư mục Mới, Chỉ định Phần mở rộng Tệp
1 | ActiveWorkbook.SaveAs Filename: = "C: \ new.xlsx" |
hoặc
1234 | Dim wbstring dưới dạng chuỗiwbstring = "C: \ new.xlsx"ActiveWorkbook.SaveAs Filename: = wbstring |
Sổ làm việc Lưu dưới dạng - Thư mục Mới, Chỉ định Phần mở rộng Tệp - Phương pháp Thay thế
Bạn cũng có thể chỉ định định dạng tệp trong đối số của chính nó.
1234 | .xlsx = 51 '(52 cho Mac).xlsm = 52 '(53 cho Mac).xlsb = 50 '(51 cho Mac).xls = 56 '(57 cho Mac) |
1 | ActiveWorkbook.SaveAs Filename: = "C: \ new", FileFormat: = 51 |
Sổ làm việc Lưu dưới dạng - Thêm mật khẩu để mở tệp
1 | ActiveWorkbook.SaveAs Filename: = "C: \ new.xlsx", Password: = "password" |
Sổ làm việc Lưu dưới dạng - Thêm Mật khẩu để Viết Đặc quyền
Nếu mật khẩu chính xác không được cung cấp thì sổ làm việc sẽ mở dưới dạng Chỉ đọc
1 | ActiveWorkbook.SaveAs Filename: = "C: \ new.xlsx", WriteRes: = "password" |
Sổ làm việc Lưu dưới dạng - Khuyến nghị Chỉ đọc
ĐÚNG để hiển thị hộp thông báo, khuyến nghị rằng tệp được mở ở chế độ chỉ đọc.
1 | ActiveWorkbook.SaveAs Filename: = "C: \ new.xlsx", ReadOnlyRecommended: = TRUE |
Lưu làm ví dụ khác
Tạo Hộp thoại Lưu dưới dạng
Thao tác này Tạo Hộp thoại Lưu dưới dạng, nhắc người dùng Lưu tệp.
Hãy nhớ rằng mã đơn giản này có thể không phù hợp trong mọi trường hợp.
1 | Application.GetSaveAsFilename |
Tạo hộp thoại Lưu dưới dạng với Tên tệp mặc định được cung cấp
1 | Application.GetSaveAsFilename InitialFilename: = "test.xlsx" |
Tạo hộp thoại Lưu dưới dạng với Tên tệp mặc định được cung cấp
1 | Application.GetSaveAsFilename InitialFilename: = "test.xlsx" |
Tạo & Lưu Sổ làm việc Mới
Thao tác này sẽ tạo một sổ làm việc mới và ngay lập tức lưu nó.
123456 | Dim wb As WorkbookĐặt wb = Workbooks.AddApplication.DisplayAlerts = Falsewb.SaveAs Tên tệp: = ”c: \ Test1.xlsx”Application.DisplayAlerts = True |
Tắt Lưu cảnh báo
Khi làm việc với việc lưu trong VBA, bạn có thể gặp nhiều Cảnh báo hoặc Lời nhắc Lưu khác nhau. Để tắt cảnh báo, hãy thêm dòng mã này:
1 | Application.DisplayAlerts = Sai |
và để có thể cảnh báo lại:
1 | Application.DisplayAlerts = True |