Sự kiện OnLoad Trong Ribbon

tuhocvba

Administrator
Thành viên BQT
Giả sử tôi có file A và file B.
Từ file A tôi dùng code Workbooks.Open(B) để mở file B.
Tuy nhiên trên file B có sự kiện WorkbookOpen.
Đương nhiên VBA không thể phân luồng để chạy hai thủ tục cùng một lúc. Do macro trên file A đang thực thi công việc nên sự kiện WorkbookOpen của file B cần vô hiệu hóa. Khi đó chúng ta dùng :
Mã:
    Application.EnableEvents = False
    Workbooks.Open (fileB)
OK, bây giờ ta sẽ xét tới một tình huống phức tạp hơn.
Trước hết các bạn hãy xem lại topic sau :

Nếu file B sử dụng ribbon trong đó có sự kiện làm mới các nút bấm ribbon OnLoad.
Mã:
<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui" onLoad="OnLoad">
Khi đó nếu file A thực thi Workbooks.Open(fileB) sẽ xảy ra lỗi 400.
Macro trên file A đang thực thi mở file B. Macro này chưa kết thúc tới End Sub .
Cùng lúc đó file B được mở và cũng muốn thực thi OnLoad.
Có sự tranh chấp này nen sẽ có cảnh báo lỗi.
Bạn cần đăng nhập để thấy đính kèm


Tất nhiên tôi không muốn xuất hiện thông báo như thế này.
Có vẻ người khác cũng đang gặp rắc rối tương tự nhưng chưa thấy ai bàn ra cách giải quyết.
 
Top