В Microsoft Excel при поиске с помощью CTRL+ Fпо умолчанию поиск выполняется только в пределах текущего рабочего листа.
Как мне настроить его на поиск по всей рабочей книге по умолчанию? У меня есть Office 2010
. Это вообще возможно? Можно ли настроить это для определенной рабочей книги или рабочего листа? Я согласен на редактирование реестра, если это то, что нужно.
Примечание:Почти 10 лет спустя я все еще хотел бы сделать это, но теперь для Excel 2016/2019.
решение1
Это можно сделать с помощью макроса Workbook_Open в модуле ThisWorkbook, например так:
Private Sub Workbook_Open()
Application.CommandBars.FindControl(ID:=1849).Execute
SendKeys "%(h){DOWN}{ENTER}{ESC}"
End Sub
Это настроит сеанс для рабочей книги, в которой вы находитесь.
Чтобы это всегда было значением по умолчанию, вам нужно создатьПерсональная рабочая тетрадь макросов.
Примечание: Старая строка из оригинального ответа:SendKeys "%(t)%(h)W~{ESC}"
решение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
решение3
Выберите значок «Найти/Выбрать» на домашней ленте.
Нажмите «Найти».
Нажмите на поле «Параметры» в правом нижнем углу.
С левой стороны есть раскрывающийся список с надписью «Внутри».
Выберите «Лист» или «Рабочая книга»
Этотсайт объясняет, как изменить значение по умолчанию
решение4
У меня была похожая проблема. У меня есть кнопка в рабочей книге. Если нажать кнопку, я хочу, чтобы 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 дважды, и вы в любом случае перейдете к поиску в раскрывающемся списке (потому что предыдущие шаги гарантируют, что параметры действительно отображаются!)
Нажмите стрелку ВНИЗ дважды, чтобы выбрать «Рабочая книга», и нажмите ENTER, чтобы выбрать
Нажмите ALT+T дважды, чтобы снова вернуть курсор в поле ввода поиска.
Надеюсь, это поможет кому-то еще, у кого похожая проблема. Многочисленные поиски в Google показали мне, что невозможно предварительно выбрать «поиск во всех книгах» с помощью VBA, но этот способ работает!
Чтобы он работал с разными языками, вам нужно будет проверить язык и использовать CASE для переключения на нужную процедуру с соответствующими сочетаниями клавиш.