W ostatnim czasie spotkałem się z dziwnym (nawet jak na software Microsoftu) problemem.
Pracując na przeszło tysiącu różnych checkboxów (typu Forms, nie Active-X) w jednym arkuszu, okazało się, że niemożliwym jest ukrycie ich wszystkich jednym poleceniem VBA:
ActiveSheet.CheckBoxes.Visible = True/False
Odpalenie makra z tym poleceniem z poziomu arkusza zawierającego wspomniany zbiór checkboxów kończyło się błędem:
Error-1004 Unable to set the visible property of the worksheet class
Jak się okazuje, Microsoft prawdopodobnie nie przewidział lub po prostu zbagatelizował fakt, że ktokolwiek będzie próbował pokazywać lub ukrywać więcej niż ~100 checbkoxów na raz. Właśnie okolica 100 checkboxów jest miejscem w którm “ActiveSheet.CheckBoxes.Visible = True/False” przestaje działać. Ciekawe jest to, że błąd występuje na następujących wersjach Office’a: 2010, 2013, 2016… 🙂
Tak więc jeśli pracujecie z wieloma checkboxami w jednym arkuszu i potrzebujecie je ukrywać i chować, polecam utworzenie szybkiej pętelki w VBA.
Przykład mojej poniżej:
1 2 3 4 5 6 7 |
Dim CB As CheckBox For Each CB In ActiveSheet.CheckBoxes If CB.Visible = False Then CB.Visible = True End If Next CB |