За замовчуванням встановіть Excel для пошуку у всій книзі


12

У програмі Microsoft Excel під час пошуку за допомогою CTRL+ Fза замовчуванням він здійснює пошук лише в поточному робочому аркуші.

Як я можу налаштувати його на пошук у всій книзі за замовчуванням? Я маю Office 2010. Це навіть можливо? Чи можна встановити це для конкретної робочої книги чи робочого аркуша? Я добре з редагуванням реєстру, якщо це потрібно.

Примітка: Майже через 10 років я все-таки хотів би це зробити, але тепер для Excel 2016/2019.

Відповіді:


3

Це можна зробити за допомогою макроса Workbook_Open в модулі ThisWorkbook, наприклад:

Private Sub Workbook_Open()

Application.CommandBars.FindControl(ID:=1849).Execute
SendKeys "%(t)%(h)W~{ESC}"

End Sub

Це встановить його для вашого сеансу для робочої книги, в якій ви знаходитесь.

Щоб це завжди було за замовчуванням, вам потрібно створити робочу книгу "Особистий макрос" .


1
Я краще не використовую для цього макрос.
Джоел Куехорн

2
@Joel, налаштування, швидше за все, зберігатимуться у .pip-файлі для Excel, який легко знайти, але він є бінарним, і я не можу знайти для нього конкретного редактора (це був би чудовий проект). Можливо, ви могли б отримати стандартний шестигранний редактор і опрацювати його, але це був би проект.
Ленс Робертс

2

Я включив модифікацію, щоб вона спрацювала, якщо ваш Excel є іспанською мовою (як у мене)

Private Sub Workbook_Open()

Dim lCountryCode As Long
lCountryCode = Application.International(xlCountryCode)

Application.CommandBars.FindControl(ID:=1849).Execute

Select Case lCountryCode
Case 34 'spanish
    SendKeys "%(p)%(D)L~{ESC}"
Case Else 'default english
    SendKeys "%(t)%(h)W~{ESC}"
End Select


End Sub

0
  1. Виберіть піктограму «Знайти / вибрати» в домашній стрічці

  2. Натисніть Знайти

  3. Клацніть поле "Параметри" в нижньому правому куті

  4. На лівій стороні розміщене спадне меню, яке говорить "У межах"

  5. Виберіть "Аркуш" або "Робоча книга"

Цей веб-сайт пояснює, як змінити типовий режим


1
Це не працює з двох причин. По-перше, ця опція не зберігається для кожного документа. Відкрийте електронну таблицю, внесіть зміни, збережіть електронну таблицю, закрийте Excel , повторно відкрийте електронну таблицю, і вона повернеться такою, якою вона була. По-друге, навіть якщо це було збережено разом із документом, я маю відкрити багато документів, які не були створені на моїй машині, і тому вони мали б (неправильне) налаштування з оригінальної машини, де вони були створені.
Joel Coehoorn

0

Команди Sendkeys, запропоновані іншими відповідями, не рекомендуються. У минулому команда Sendkeys призводила до дуже несподіваних дій, до яких, можливо, доведеться перезавантажити комп’ютер, щоб відновитись. Я рекомендую зробити звичайну локальну програму та виконувати її лише на вимогу. Для зручності ви також можете призначити йому ключ cntl типу "q". Параметр "Робоча книга в межах" запам'ятається для балансу сеансу.

Sub myFind()
  Application.CommandBars.FindControl(ID:=1849).Execute
  SendKeys "%(t)%(h)W~+{Tab}+{Tab}"
End Sub

0

У мене було подібне питання. У мене є робоча книжка. Якщо натиснути кнопку, я хочу, щоб відкрити діалог пошуку з опцією "пошук у всіх робочих книгах", вже вибраною замість типового "в межах аркуша", незалежно від того.

Крім того, я хотів, щоб кнопка спрацьовувала за тим, щоб параметри були приховані або показані, і тим більше, чи не хтось вносив зміни вручну. Це складно, оскільки 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 для переходу на належну процедуру за допомогою відповідних ярликів.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.