1

У меня есть документ MS Word 2007, настроенный как документ слияния. Я использую Excel в качестве источника данных. MERGEFIELD ClientData содержит файл Excel (test.xlsx).

Я хочу объединить данные из файла Excel, указанного в ClientData, в соответствующий документ Mail Merge. Однако всякий раз, когда я начинаю слияние, поле {MERGEFIELD ClientData} разрешается только один раз и не выбирает следующую строку из ClientData.

Итак, это:

{LINK Excel.Sheet.12 "C:\\path\\to\\file\\{MERGEFIELD ClientData}" \a \f 4 \h}

Становится ли это после начала слияния:

{LINK Excel.Sheet.12 "C:\\path\\to\\file\\test.xlsx" \a \f 4 \h}

Таким образом, каждый документ Mail Merge использует test.xlsx вместо соответствующего документа Excel, определенного для клиента (т. Е. Test1.xlsx, test2.xlsx, test3.xlsx и т.д.)

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

{LINK Excel.Sheet.12 "C:\\path\\to\\file\\test.xlsx" \a \f 4 \h}

{LINK Excel.Sheet.12 "C:\\path\\to\\file\\test1.xlsx" \a \f 4 \h}

{LINK Excel.Sheet.12 "C:\\path\\to\\file\\test2.xlsx" \a \f 4 \h}

{LINK Excel.Sheet.12 "C:\\path\\to\\file\\test3.xlsx" \a \f 4 \h}

Но по какой-то причине этого не происходит. У кого-нибудь есть предложения?

Спасибо!

1 ответ1

1

Проблема в том, что поля LINK всегда разрешают все вложенные поля, рано или поздно.

Лучше всего, вероятно, использовать события Wordmerge Word, а затем использовать событие BeforeRecordMerge чтобы:

  • а. получить имя файла (test.xlsx и т. д.) (например, через Doc.Mailmerge.Datasource.Datafields("ClientData").Value)
  • б. либо вставьте его обратно в существующее поле LINK, либо, возможно, проще, удалите существующее поле LINK и вставьте новое.

Подсказка: вставьте новое пустое поле, затем вставьте все поле LINK.

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