Joe hỏi liệu có cách nào để xác định, trong macro, ai có một sổ làm việc cụ thể đang mở. Anh ấy đã nghĩ đến việc sử dụng thuộc tính WriteReservedBy, nhưng nó dường như không có thông tin mà anh ấy cần.

Thật không may, không có cách nào để xác định thông tin này từ VBA — nó không thể truy cập được. Thuộc tính WriteReservedBy không hiển thị ai có tệp đang mở; nó cho biết ai đã lưu sổ làm việc bằng mật khẩu. Nói cách khác, khi ai đó lưu sổ làm việc với tùy chọn có mật khẩu để sửa đổi nó, thì tệp đó là “WriteReserved.” Thuộc tính WriteReservedBy chứa tên của người đã lưu tệp ở trạng thái WriteReserved.

Nếu bạn chỉ cần biết câu trả lời (về người đã mở tệp)

theo định kỳ, dễ nhất là thu thập danh sách các tên tệp đang mở và yêu cầu quản trị viên mạng cho bạn biết ai đã mở chúng — thông tin đó được duy trì trên mạng và quản trị viên có thể truy cập được.

Một giải pháp tiềm năng khác là thêm macro Tự động mở vào mỗi sổ làm việc ghi tệp tạm thời vào đĩa chứa tên của người mở tệp. Macro không chỉ cần mở tệp tạm thời mà còn phải xử lý các điều kiện lỗi, chẳng hạn như tệp tạm thời đã được mở. Sau đó, tệp tạm thời có thể được truy cập bởi các macro khác để xem tên tệp chứa nó.

Macro được tìm thấy tại trang web sau đây có thể cung cấp một giải pháp khác để tìm ra ai có một sổ làm việc cụ thể đang mở:

https://bizintelsolutions.wordpress.com/2015/01/26/who-is-in-excel-xlsx-file/

Một nơi bổ sung có thể có câu trả lời là trang VBNet. Bài viết tại trang này có chứa mã có thể được điều chỉnh cho các thông tin mong muốn:

http://vbnet.mvps.org/index.html?code/network/netfileenum.htm

Lưu ý rằng mã chỉ hoạt động trong các phiên bản Windows cũ hơn. Nó sẽ hoạt động tốt trong các phiên bản lên đến Windows 7, nhưng sẽ hoạt động nhẹ nhàng khi chuyển sang các phiên bản sau — bạn sẽ muốn kiểm tra toàn bộ để đảm bảo nó hoạt động trong môi trường của bạn.

_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 (9511) áp dụng cho Microsoft Excel 2007, 2010, 2013, 2016, 2019 và Excel trong Office 365. Bạn có thể tìm thấy phiên bản của mẹo này cho giao diện menu cũ hơn của Excel tại đây: