2016-05-10 18 views
5

này đang xảy ra cho người dùng với Excel 2007/2010 người đang sử dụng Worksheet_Change và Worksheet_SelectionChange sự kiện mà tôi đã thiết kế vào năm 2013.Application.EnableEvents mặc định là False

gì dường như xảy ra là khi lần đầu tiên họ mở sổ làm việc, sự kiện trang tính của họ không kích hoạt. Tôi đã chắc chắn rằng họ có tùy chọn của họ mặc định để cho phép macro. Nếu tôi mở cửa sổ ngay lập tức và chạy Application.EnableEvents = True thì sự kiện của chúng sẽ bắt đầu kích hoạt tốt. Người dùng với Excel 2013 dường như không có vấn đề này, ngay cả khi mở chính xác cùng một bản sao của sổ làm việc từ một ổ đĩa mạng chia sẻ.

Tôi dường như đã có thể khắc phục điều này bằng cách đặt Application.EnableEvents = True trong sự kiện Workbook_Open, nhưng tôi tự hỏi đây là giải pháp khả thi lâu dài. Tôi thực sự sẽ tìm ra lý do tại sao điều này xảy ra ngay từ đầu để giải quyết nó trực tiếp.

+1

Đây chỉ là một đâm trong bóng tối, Trong một trong các Sự kiện bạn đang sử dụng 'Khi lỗi Tiếp tục lại' hoặc' Goto Something'. Và mã không tương thích ngược với 2007/2010. Vì vậy, khi lỗi xảy ra, nó bị bỏ qua và 'Application.EnableEvents = True' trong mã đó đang bị bỏ qua. Loại bỏ tất cả các trình xử lý lỗi trong mã và mở sách trong các phiên bản cũ hơn và xem lỗi nào xảy ra. –

+1

Vì sự kiện Workbook_Open đang kích hoạt, có vẻ như các sự kiện được bật lúc bắt đầu. Có thể một số không tương thích đang khiến nó trở lại Sai khi một số sự kiện nhất định gây ra sự cố –

Trả lời

1

Tôi đã có một vấn đề tương tự ngày hôm nay trên một số từ VBA. Và nó nằm trong một dự án ẩn. Nó bật ra rằng xử lý sự kiện On Error chúng tôi mã hóa không chính xác bởi người khác. Tôi đã sử dụng các macro AutoExec và AutoOpen và chèn một Ngừng để vào chế độ gỡ lỗi và xem điều gì sẽ xảy ra.

Những sự kiện này sẽ kích hoạt trừ khi bạn đã đặt EnableEvents thành False trong mã của bạn để bắt đầu.

Các vấn đề liên quan