Предварительно заполненное диалоговое окно «Найти / заменить» (Ctrl + H) - PullRequest
0 голосов
/ 06 мая 2019

Я хочу, чтобы пользователь мог изменять начальный номер const без доступа к коду через панель замены (Ctrl + h).Мне удалось написать код, который его открывает, но я понятия не имею, как мне написать код, который будет вводить в поле поиска и заменять поле.

сейчас мой код - это всего лишь одна строка, которая открывает заменубар:

    Sub test()
    Application.SendKeys "^(h)"

    End Sub

1 Ответ

0 голосов
/ 06 мая 2019

Попробуй это. Откроется диалоговое окно поиска / замены, предварительно заполненное тем, что вы передаете в качестве аргументов.

Application.Dialogs(xlDialogFormulaReplace).Show arg1:= "find", arg2:= "replace"

Потенциальные аргументы здесь, взгляните на документацию для замены, приведенную ниже, чтобы узнать, какие значения аргументов использовать. Функция «отличается», но использует те же самые константы, например, look_at в функции «Dialogs» использует те же аргументы, что и LookAt в функции «Replace».

xlDialogFormulaReplace find_text, replace_text, look_at, look_by, active_cell, match_case, match_byte

Для поиска значений. https://docs.microsoft.com/en-us/office/vba/api/excel.range.find

Для замены значений https://docs.microsoft.com/en-us/office/vba/api/excel.range.replace

Из вашего комментария может показаться, что вы хотите, чтобы это было полностью автоматизировано, без какого-либо вмешательства пользователя. Если это так, используйте функцию Replace () в Excel.

Пример использования, более простой, чем статья, и не требует установки значения bool: Sheets("Sheet1").Cells.Replace "find", "replace", xlWhole

Как вы планируете запускать код, зависит от вас. :)

ПРИМЕЧАНИЕ. Замены через VBA не могут быть отменены с помощью CTRL-Z

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...