Miałem podobny problem. Mam przycisk w skoroszycie. Jeśli przycisk zostanie kliknięty, chcę, aby program Excel otworzył okno wyszukiwania z opcją „szukaj we wszystkich skoroszytach” już wybraną zamiast domyślnej „w arkuszu”, bez względu na wszystko.
Ponadto chciałem, aby przycisk działał bez względu na ukryte lub pokazywane opcje i czy ktoś nie wprowadził zmian ręcznie. Jest to trudne, ponieważ Excel domyślnie nie wyświetla opcji przy starcie, ale pamięta i pokazuje je ponownie następnym razem, jeśli ktoś wyświetlił je wcześniej.
Aby upewnić się, że naciśnięcia klawiszy działają, potrzebujemy serii naciśnięć klawiszy, które ustawiają ustawienia niezależnie od stanu początkowego. Zajęło mi się trochę majsterkowania, ale znalazłem taki, który działa.
Oto mój kod dla angielskiej wersji programu Excel, w przypadku innych języków musisz odpowiednio zmienić klucze.
Sub Commanbutton_Click()
Cells(1, 1).Select
SendKeys "^f", True
SendKeys "{TAB 15}"
SendKeys " ", True
SendKeys "%t%t", True
SendKeys "{TAB 2}", True
SendKeys "{DOWN}{DOWN}{ENTER}", True
SendKeys "%t%t", True
End Sub
Możesz to wypróbować ręcznie:
Naciśnij klawisze CTRL + F, aby otworzyć okno wyszukiwania. Naciśnij klawisz TAB 15 razy, aby przejść do menu „Opcje” lub menu „Szukaj w”.
Naciśnij spację i albo
1) Wyświetlane są opcje lub 2) menu aktywowane i nic się nie dzieje
Naciśnij dwukrotnie Alt + T, aby zresetować kursor do pola wprowadzania wyszukiwania
Naciśnij dwa razy TAB, przejdziesz do wyszukiwania w menu rozwijanym, bez względu na wszystko (ponieważ poprzednie kroki zapewniają, że opcje są faktycznie wyświetlane!)
Naciśnij strzałkę W DÓŁ dwa razy, aby wybrać „Skoroszyt” i ENTER, aby wybrać
Naciśnij dwa razy klawisze ALT + T, aby ponownie ustawić kursor w polu wprowadzania wyszukiwania.
Mam nadzieję, że pomoże to komuś, kto ma podobny problem. Wielu Googlingów powiedziało mi tylko, że nie można wstępnie wybrać „wyszukiwania we wszystkich skoroszytach” za pomocą VBA, ale ten sposób działa!
Aby działał z różnymi językami, musisz sprawdzić ten język i użyć CASE, aby przejść do odpowiedniej procedury z odpowiednimi skrótami.