Mam skoroszyt programu Excel zawierający elementy sterujące ComboBox umieszczone bezpośrednio na arkuszach. Są to standardowe pola kombi na pasku narzędzi Forms.Excel VBA: Zapisz jako powoduje zmianę zdarzenia w ComboBox
Gdy użytkownik używa "Zapisz jako", aby zapisać skoroszyt o innej nazwie, wywoła to zdarzenie Zmień we wszystkich polach kombi, w tym na arkuszach, które nie są aktywne. Wydaje się to nieuzasadnione, ponieważ wybór nie ulegnie zmianie. Powoduje to różne niepożądane zachowania z powodu kodu w procedurach obsługi zdarzeń. Zdarzenie nie jest wyzwalane na zwykłym "Zapisz".
Google suggests jest to znany problem w programie Excel. Istnieje rumours, który jest spowodowany przez użycie nazwanego zakresu jako ListFillRange dla pola kombi, które zrobiłem, chociaż nie jest to nazwa lotna. Szukam sposobu, aby temu zapobiec, wprowadzając minimalne zmiany w kodzie i arkuszu kalkulacyjnym. Czy ktoś ma sprawdzone rozwiązanie?
Nie mogę odtworzyć tego zachowania za pomocą programu Excel 2007, ani przy użyciu normalnych zakresów, ani przy użyciu nazwanych zakresów. Być może powinieneś przesłać przykład ... –
@belisarius Nie mogę załadować pełnego skoroszytu, ponieważ zawiera on wiele zastrzeżonych kodów. Nie mam teraz czasu, aby wypróbować mały przykład :( – MarkJ
Nie mogę potwierdzić w programie Excel 2003. Czy możesz potwierdzić, że używasz formantu "Forms", a nie kontrolki "Controls"? cholera, Microsoft!) Formant Forms nie ma zdarzenia 'Change' ani właściwości takich jak' ListFillRange'. – Lunatik