Tôi có sổ làm việc Excel chứa một số điều khiển ComboBox được đặt trực tiếp trên trang tính. Đây là các hộp kết hợp tiêu chuẩn từ thanh công cụ Biểu mẫu.Excel VBA: Lưu thành trình kích hoạt Thay đổi sự kiện trong ComboBox
Khi người dùng sử dụng "Lưu dưới dạng" để lưu sổ làm việc có tên khác, điều này kích hoạt sự kiện Thay đổi trên tất cả các hộp tổ hợp, bao gồm cả sự kiện trên trang tính không hoạt động. Điều này có vẻ không hợp lý vì lựa chọn không thực sự thay đổi. Điều này gây ra nhiều hành vi không mong muốn vì mã trong trình xử lý sự kiện. Sự kiện không được kích hoạt trên "Lưu" đơn giản.
Google suggests đây là sự cố đã biết trong Excel. Có rumours rằng nó gây ra bằng cách sử dụng một phạm vi được đặt tên như ListFillRange cho hộp kết hợp, mà tôi đã làm, mặc dù nó không phải là một tên dễ bay hơi. Tôi đang tìm cách ngăn chặn điều này xảy ra với những thay đổi tối thiểu đối với mã và bảng tính. Có ai có một giải pháp đã được chứng minh?
Tôi không thể tạo lại hành vi này bằng Excel 2007, không sử dụng phạm vi bình thường hoặc không sử dụng dải ô được đặt tên. Có lẽ bạn nên tải lên một ví dụ ... –
@belisarius Tôi không thể tải lên sổ làm việc đầy đủ vì nó chứa rất nhiều mã độc quyền. Tôi không có thời gian để cố gắng tạo ra một ví dụ nhỏ: ( – MarkJ
Không thể xác nhận trong Excel 2003. Bạn có thể xác nhận rằng bạn đang sử dụng điều khiển "Biểu mẫu" chứ không phải điều khiển "erm", "Điều khiển" không? (Điều khiển biểu mẫu không có sự kiện 'Thay đổi' hoặc các thuộc tính như' ListFillRange'. – Lunatik