У мене було подібне питання. У мене є робоча книжка. Якщо натиснути кнопку, я хочу, щоб відкрити діалог пошуку з опцією "пошук у всіх робочих книгах", вже вибраною замість типового "в межах аркуша", незалежно від того.
Крім того, я хотів, щоб кнопка спрацьовувала за тим, щоб параметри були приховані або показані, і тим більше, чи не хтось вносив зміни вручну. Це складно, оскільки Excel за замовчуванням не показує параметри при запуску, але запам'ятовує та показує їх знову наступного разу, якщо хтось їх відображав раніше.
Щоб переконатися, що натискання клавіш працює, нам потрібна серія натискань клавіш, яка встановлює налаштування незалежно від початкового стану. Займався зовсім трохи, але я знайшов таке, що працює.
Ось мій код англійської версії Excel, для інших мов потрібно відповідно змінити клавіші.
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
Ви можете спробувати це вручну:
Натисніть CTRL + F для діалогу пошуку. Натисніть кнопку TAB 15 разів, щоб ви потрапили у параметр "Параметри" або у спадному меню "Пошук всередині".
Натисніть пробіл і будь-яке
1) Відображаються параметри або 2) спадне меню активується, і нічого не відбувається
Двічі натисніть Alt + T, щоб скинути курсор до вікна пошуку
Двічі натисніть TAB, це призведе вас до пошуку в спадному меню, незважаючи ні на що (адже попередні кроки гарантують, що параметри відображаються насправді!)
Двічі натисніть стрілку Вниз, щоб вибрати "Workbook", і ENTER для вибору
Двічі натисніть ALT + T, щоб знову скинути курсор на поле пошуку.
Сподіваюся, це допомагає комусь іншому, у кого є схожа проблема. Багато Googling мені лише сказали, що не можна попередньо вибрати "пошук у всіх робочих книгах" за допомогою VBA, але це працює!
Щоб він працював з різними мовами, вам потрібно буде перевірити мову та використовувати CASE для переходу на належну процедуру за допомогою відповідних ярликів.