Sử dụng Macro trong Sổ làm việc được Bảo vệ (Microsoft Excel)
Lori gặp sự cố với sổ làm việc mà cô ấy muốn chia sẻ với những người khác. Sổ làm việc có chứa một macro, nhưng bất cứ khi nào sổ làm việc được bảo vệ để ngăn người khác thực hiện các thay đổi đối với sổ làm việc, Lori sẽ báo cáo rằng “macro đã bị vô hiệu hóa.”
Vấn đề chính xác của Lori hơi khó để tái tạo, vì thử nghiệm cho thấy rằng macro vẫn có sẵn trong cả bảng tính được bảo vệ và sổ làm việc được bảo vệ. Bạn vẫn có thể hiển thị hộp thoại Macro và xem danh sách các macro có sẵn. Bạn vẫn có thể chọn một trong các macro và chạy nó.
Tất nhiên, việc nhìn và chạy các macro có thể không phải là vấn đề của Lori; có thể là macro không chạy chính xác khi được sử dụng trên một trang tính được bảo vệ. Nếu đúng như vậy, vấn đề thường chỉ xảy ra nếu macro đang cố gắng thực hiện một số hành động vi phạm bảo vệ được áp dụng cho trang tính. Ví dụ: nếu bảo vệ không cho phép xóa các hàng hoặc cột và macro cố gắng làm như vậy, thì nó sẽ không hoạt động.
Giải pháp trong trường hợp này là sửa đổi macro của bạn để nó bỏ bảo vệ trang tính trước khi thực hiện các thay đổi. Phần sau cho thấy những điều cơ bản về cách thực hiện điều này:
Sub ModifyProtectedSheet() ActiveSheet.Unprotect password:="yourpassword" 'work on the worksheet here ActiveSheet.Protect password:="yourpassword", _ DrawingObjects:=True, Contents:=True, Scenarios:=True End Sub
Dòng đầu tiên của ví dụ này bỏ bảo vệ trang tính, sau đó bạn có thể thực hiện quá trình xử lý của mình và sau đó dòng cuối cùng lại bảo vệ nó. Nếu sổ làm việc của bạn sử dụng tính năng bảo vệ, thì kỹ thuật tương tự có thể được sử dụng với sổ làm việc — bỏ bảo vệ nó, sau đó thực hiện các thay đổi, sau đó bảo vệ lại nó.
Vấn đề của Lori cũng có thể liên quan đến từ “chia sẻ”, mà cô ấy đã sử dụng trong tuyên bố vấn đề của mình. Nếu, bằng cách chia sẻ, Lori có nghĩa là sử dụng Chia sẻ Sổ làm việc để làm cho sổ làm việc “có thể chia sẻ” bởi những người khác, thì bạn sẽ thấy cảnh báo khi chia sẻ được kích hoạt. Cảnh báo cho biết rằng không thể “xem hoặc chỉnh sửa macro” trong sổ làm việc được chia sẻ. Tuy nhiên, điều này không có nghĩa là các macro bị vô hiệu hóa, vì bạn vẫn có thể hiển thị hộp thoại Macros để xem danh sách các macro và chọn một macro để chạy. Tuy nhiên, bạn không thể hiển thị VBA Editor và xem mã macro thực tế.
Cuối cùng, có một số tính năng của Excel chỉ bị vô hiệu hóa trong sổ làm việc được chia sẻ. Nếu macro của bạn cố gắng thực hiện bất kỳ hành động nào bị vô hiệu hóa này, nó sẽ không hoạt động bình thường. Đây là một hạn chế của Excel và không thể làm gì được. (Để biết thêm thông tin về những gì không thể thực hiện được trong sổ làm việc dùng chung, hãy sử dụng hệ thống trợ giúp trực tuyến và tìm kiếm “sổ làm việc được chia sẻ, các giới hạn.”) Cách duy nhất để giải quyết những hạn chế này là không chia sẻ sổ làm việc.
_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 (2833) áp dụng cho Microsoft Excel 97, 2000, 2002 và 2003. Bạn có thể tìm thấy phiên bản của mẹo này cho giao diện ribbon của Excel (Excel 2007 trở lên) tại đây: