Мне нужно создавать письма с MS Word. На каждом письме нам нужен код, который помещается на письмо с помощью Mail Merge. Некоторые письма нужно печатать чаще, чем другие. Мне нужно найти способ, чтобы некоторые письма создавались чаще, чем другие, без дублирования количества строк в Excel. В списке есть столбец, в котором указано, сколько раз нужно распечатать письмо, но я не знаю, как использовать эти данные при слиянии.

Колонки:

A: Amount (amount of times the letter needs to be printed)
B: Code 1
C: Code 2

Пример документов можно найти здесь.

Кто-нибудь знает, как заставить это работать?

3 ответа3

0

"без дублирования строк в Excel"

Один из способов сделать это, если у вас достаточно малое максимально возможное количество повторений, состоит в двухступенчатом слиянии. Скажите "Количество" может быть 1, 2 или 3.

На первом этапе у вас есть каталог слияния основного документа, примерно такой:

{ IF { MERGESEQ } = 1 "Code1,Code2" }
{ IF { MERGEFIELD Amount } > 0 "{ MERGEFIELD Code1 },{ MERGEFIELD Code2 }" }
{ IF { MERGEFIELD Amount } > 1 "{ MERGEFIELD Code1 },{ MERGEFIELD Code2 }" }
{ IF { MERGEFIELD Amount } > 2 "{ MERGEFIELD Code1 },{ MERGEFIELD Code2 }" }

Объедините это с выходным документом, и у вас должен быть новый .docx с правильным количеством копий необходимых вам данных. Используйте это в качестве источника данных для шага 2.

(Если ваши данные на самом деле сложнее, чем вы предлагали, вам, возможно, придется иметь дело с возможностью того, что ваши поля данных содержат запятые).

Существует еще один возможный "двухэтапный" подход, который может быть работоспособным, если вы используете Windows Word, в зависимости от того, сколько строк содержит ваш лист Excel и насколько велико "Количество".

0

Вы просите зациклить уникальную запись на количество итераций, указанное в столбце помощника.

При стандартной настройке word/excel это невозможно.

В Word Mail merge есть правило if..then..else , но поле then/else ограничено только текстом. Имена полей {} там не распознаются. Кроме того, оператор if сравнивается с константой, а не со значением переменной из вспомогательного столбца.

Самый простой способ - повторять строку в списке Excel столько раз, сколько требуется. В противном случае, кто-то с навыками VBA может пролить некоторый свет, если это возможно с помощью VBA.

0

После подготовки листа в Excel и связывания его с помощью слияния по почте (начало слияния) используйте редактирование получателя и используйте «Фильтр», выберите «Сумма, равная количеству записей», на нем будут показаны только записи с соответствующей суммой, и вы можете отправить его на Распечатать

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .