Вам не нужен VBA для этого с вопросом, который был первоначально отправлен - просто используйте поле SKIPIF, закодированное как:
{SKIPIF{MERGEFIELD ID}<> {FILLIN "Which ID do you want?" \o}}
или:
{SKIPIF«ID»<> {FILLIN "Which ID do you want?" \o}}
где 'ID' - это имя поля данных в Excel, которое требуется объединить для обработки.
При этом будет обрабатываться только запись, содержащая этот идентификатор. VBA не требуется.
Примечание: Пары фигурных скобок (т. Е. '{}') Для приведенного выше примера все создаются в самом документе с помощью Ctrl-F9 (Cmd-F9 на Ma c или, если вы используете ноутбук, вам может понадобиться Ctrl-Fn-F9); Вы не можете просто напечатать их или скопировать и вставить их из этого сообщения. Также нецелесообразно добавлять их через какие-либо стандартные диалоги Word. Аналогично, шевроны (то есть «« ») являются частью фактических полей слияния, которые вы можете вставить из выпадающего меню« Вставить поле слияния »(то есть вы не можете ни печатать, ни копировать и вставлять их из этого сообщения). Все пробелы, представленные в полевых конструкциях, являются обязательными.
Я вижу, что вы добавили два новых требования, а именно:
- mailmerge для запуска с кнопки в Excel; и
- для того, чтобы он "также мог автоматически сохранять его в формате PDF".
Вы действительно не должны перемещать посты цели таким образом. Также вы не должны задавать несколько разных вопросов в одной теме. Код для запуска слияния из Excel (и отправки выходных данных в PDF) см. В Запуск Mailmerge из Excel, отправка вывода в отдельные файлы в потоке Советы и рекомендации Mailmerge в : https://www.msofficeforums.com/mail-merge/21803-mailmerge-tips-tricks.html. Конечно, как только вы начнете использовать такой макрос, вам нужно будет добавить к этому коду лог c для выбора идентификатора. Спросите в отдельной теме , если вы не можете понять это.