Thoát khỏi “Bản sao của” (Microsoft Excel)
Anna Lea có một sổ làm việc chỉ đọc mà cô ấy sử dụng làm mẫu cho báo cáo hàng ngày mà cô ấy tạo. Tên tệp khá dài và kết thúc bằng 20507xx. Khi cô ấy bấm đúp vào sổ làm việc, nó sẽ mở ra và hiển thị rằng nó ở chế độ chỉ đọc. Cô ấy thực hiện các thay đổi và sau đó sử dụng Save As. Vì Excel nhận ra rằng tệp ở chế độ chỉ đọc, nó sẽ đề xuất một tên tệp mới bao gồm tên cũ với các từ “Bản sao của” làm tiền tố. Anna muốn loại bỏ “Bản sao của” để tất cả những gì cô ấy phải làm là thay đổi phần “xx” của tên tệp để tạo báo cáo trong ngày.
Đường viền “Bản sao của” được Excel tự động thêm vào. Nếu bạn đang sử dụng Save As, không có cách nào để thay đổi điều này mà không sử dụng macro để kiểm soát quá trình lưu. Macro sau đây, được lưu như một phần của đối tượng ThisWorkbook, cho biết cách thực hiện điều này.
Private Sub Workbook_BeforeSave(ByVal SaveAsUI _ As Boolean, Cancel As Boolean) Dim sTemp As String Dim sCheck As String sCheck = "xx.xls" If SaveAsUI Then sTemp = ThisWorkbook.Name If Right(sTemp, Len(sCheck)) = sCheck Then sTemp = Left(sTemp, Len(sTemp) - Len(sCheck)) sTemp = sTemp & Format(Now, "dd") & ".xls" sTemp = ThisWorkbook.Path & "/" & sTemp ThisWorkbook.SaveAs Filename:=sTemp, _ FileFormat:=xlNormal Cancel = True End If End If End Sub
Trước tiên, macro sẽ kiểm tra xem hộp thoại Lưu dưới dạng có sắp được hiển thị hay không. Nếu đúng, thì tên sổ làm việc sẽ được gán cho biến sTemp. Tên này được kiểm tra để xem liệu sáu ký tự cuối cùng có phải là “xx.xls” (từ biến sCheck) hay không. Nếu đúng như vậy, thì sổ làm việc được giả định là nơi cần thay đổi tên.
Đầu tiên là các ký tự “xx.xls” (hoặc bất kỳ ký tự nào bạn đã gán cho sCheck)
bị xóa khỏi tên cuối sổ làm việc. Sau đó, ngày hôm nay (hai chữ số, cho ngày trong tháng) được thêm vào tên tệp, theo sau là hậu tố “.xls”. Cuối cùng, sổ làm việc được lưu bằng tên tệp mới được xây dựng này. Cờ Hủy được đặt thành Đúng để hộp thoại Lưu dưới dạng không bao giờ hiển thị.
Lưu ý rằng tên không bao giờ được kiểm tra cho nguyên văn “Bản sao của”. Lý do cho điều này rất đơn giản: Từ ngữ không được thêm vào đầu tên tệp cho đến khi hộp thoại Save As thực được hiển thị. Trước thời điểm đó (khi trình xử lý sự kiện này đang được thực thi) tên sổ làm việc vẫn không thay đổi.
_Lưu ý: _
Nếu bạn muốn biết cách sử dụng các macro được mô tả trên trang này (hoặc trên bất kỳ trang nào khác trên trang ExcelTips), tôi đã chuẩn bị một trang đặc biệt bao gồm thông tin hữu ích.
ExcelTips là nguồn của bạn để đào tạo Microsoft Excel hiệu quả về chi phí.
Mẹo này (3064) áp dụng cho Microsoft Excel 97, 2000, 2002 và 2003.