Настройте 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
Erik
источник
0
  1. Выберите значок «Найти / Выбрать» на домашней ленте

  2. Нажмите Найти

  3. Нажмите на поле «Опции» в правом нижнем углу

  4. С левой стороны есть выпадающий список «Внутри»

  5. Выберите «Лист» или «Рабочая тетрадь»

Этот сайт объясняет, как изменить настройки по умолчанию

MCC
источник
1
Это не работает по двум причинам. Во-первых, эта опция не сохраняется с каждым документом. Откройте электронную таблицу, внесите изменения, сохраните электронную таблицу, закройте Excel , снова откройте электронную таблицу, и она вернулась на прежний уровень. Во-вторых, даже если он сохранится вместе с документом, мне придется открыть много документов, которые не были созданы на моем компьютере, и, следовательно, будут иметь (неправильные) настройки с исходного компьютера, на котором они были созданы.
Джоэл Коухорн
0

Команды Sendkeys, предлагаемые другими ответами, не приветствуются. В прошлом команда Sendkeys приводила к очень неожиданным действиям, когда вам приходилось перезагружать компьютер для восстановления. Я бы рекомендовал сделать эту процедуру локальной и выполнять ее только по требованию. Для удобства вы также можете назначить ему ключ cntl, например «q». Опция Workbook Within будет запомнена для баланса сеанса.

Sub myFind()
  Application.CommandBars.FindControl(ID:=1849).Execute
  SendKeys "%(t)%(h)W~+{Tab}+{Tab}"
End Sub
user314256
источник
0

У меня была похожая проблема. У меня есть кнопка в рабочей тетради. Если кнопка нажата, я хочу, чтобы Excel открыл диалог поиска с уже выбранной опцией «поиск по всем рабочим книгам» вместо значения по умолчанию «внутри листа», несмотря ни на что.

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

Дважды нажмите стрелку ВНИЗ, чтобы выбрать «Рабочая книга», и нажмите ВВОД, чтобы выбрать

Нажмите ALT + T дважды, чтобы снова установить курсор на поле ввода поиска.

Надеюсь, что это помогает кому-то еще, кто имеет подобную проблему. Многие из Google уже сказали мне, что с помощью VBA невозможно предварительно выбрать «поиск по всем книгам», но этот способ работает!

Чтобы заставить его работать с разными языками, вам нужно проверить его и использовать CASE для переключения на правильную процедуру с соответствующими ярлыками.

Malo
источник