Объединить только часть документа Word из источника Excel - PullRequest
0 голосов
/ 17 февраля 2020

Как подсказывает заголовок, я пытаюсь использовать функции слияния MS Office для применения к части документа Word, а не ко всему документу.

Контекст: У меня есть база данных в Excel с именами и адресами электронной почты получателей и использовать его в качестве источника в MS Word. Тем не менее, у меня есть несколько языков в одном документе Word. Получатель должен получать только свой собственный язык, а не все остальные. Я настроил документ Word таким образом, чтобы не было нескольких документов Word с именами Email_booking_FR.docx, Email_booking_EN.docx, Email_booking_NL.docx, et c. Я должен сказать, что в настоящий момент слияние работает правильно, за исключением того, что в отправляемом письме содержатся все языки.

Документ My Word выглядит следующим образом (Минимальный рабочий пример):

EN

Dear Recipient,

Thank you for your email. We will get back to you as soon as possible.

Best,


FR

Cher Recipient,

Merci pour votre e-mail. Nous le traiterons dans les plus brefs délais.

Cordialement,

где Recipient - это поле на листе Excel.

Цель: Мне бы хотелось, чтобы функция слияния в MS Word применялась ко всему документу (другими словами, чтобы завершить все Recipient полей, но для отправки только части документа Word по электронной почте). Это возможно? Может ли Word делать такие вещи, если части EN и FR являются секциями (Title1 теги)

Из следующих возможностей, какая ( s) являются ли (1) возможными и (2) адекватными?:

  • If...then...else инструкция в Word на основе языка получателя в листе Excel
  • Отдельно языки по разрыву страницы (однако проблема заголовка EN или FR остается)
  • Восстановите номер строки указанных c разделов и используйте это в макросе (но я понятия не имею, как)

У вас есть больше мыслей по этому поводу?

1 Ответ

1 голос
/ 18 февраля 2020

Если у вас есть поле в источнике данных mailmerge, которое определяет используемый язык, вы можете использовать серию полей, закодированных в виде строк:

{IF{MERGEFIELD Language}= "EN" "Dear «Recipient»,

Thank you for your email. We will get back to you as soon as possible.

Best,"}{IF{MERGEFIELD Language}= "NL" "Beste «Recipient»,

Bedankt voor je email. We nemen zo snel mogelijk contact met u op.

Het beste,"}{IF{MERGEFIELD Language}= "FR" "Cher «Recipient»,

Merci pour votre e-mail. Nous le traiterons dans les plus brefs délais.

Cordialement,"}

Примечание: Пары фигурных скобок (то есть '{}') для приведенного выше примера все создаются в самом документе с помощью Ctrl-F9 (Cmd-F9 на Ma c или, если вы используете ноутбук, вы возможно, потребуется использовать Ctrl-Fn-F9); Вы не можете просто напечатать их или скопировать и вставить их из этого сообщения. Аналогично, шевроны (то есть «« ») являются частью реальных полей слияния, которые вы можете вставить из выпадающего меню« Вставить поле слияния »(то есть вы не можете ни печатать, ни копировать, ни вставлять их из этого сообщения). Все пробелы, представленные в конструкциях полей, обязательны для заполнения.

Обратите также внимание, что выходной текст не может содержать двойные кавычки; в противном случае вывод будет обрезан в этой точке. Более того, вы обязаны, чтобы остаток появился в других выходах! Вы можете обойти это, используя парные одинарные кавычки.

Вы также можете найти полезными мои Советы и рекомендации Mailmerge в http://www.msofficeforums.com/mail-merge/21803-mailmerge-tips-tricks.html.

...