Как использовать макрос mailmerge из Excel в Word одним нажатием кнопки на листе Excel - PullRequest
0 голосов
/ 28 февраля 2020

Я пытаюсь создать код, который будет выполняться одним нажатием кнопки на листе Excel и попросит меня ввести значение ячейки в Excel, которое затем извлечет все данные из строки этой ячейки и вставит это соответственно в шаблоне слова, где теги слияния почты.
например:
У меня есть такие данные в моем листе Excel:

ID (A1), имя (B1), фамилия (C1), страна (D1), дата (E1)
378232625 (A2), Джон (B2), Смит (C2), Соединенные Штаты (D2) ), 29/02/2020 (E2)
322783145 (A3), Джошуа (B3), марка (C3), Соединенные Штаты (D3), 27/02/2020 (E3)

Я хочу иметь кнопку, которая будет запрашивать ввод идентификатора, а затем возьмет всю другую информацию об этом человеке и поместит ее в шаблон слова в правильном месте.

Например:

Когда пользователь запускает код, он откроет окно ввода и попросит его ввести идентификатор,
, например: 322783145
, затем он проверит, где идентификатор i s помещается (эта строка в столбце A) в таблицу Excel, которая для этого примера является A3, и перетягивает остальную информацию этого человека в шаблон слова, который я создал заранее (ID, имя, фамилия, страна и дата).

Позже я хочу иметь возможность автоматически сохранять его в формате pdf с помощью той же кнопки, но сначала я хочу, чтобы это работало.

Заранее спасибо: D

1 Ответ

0 голосов
/ 29 февраля 2020

Вам не нужен 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 для выбора идентификатора. Спросите в отдельной теме , если вы не можете понять это.

...