Я создаю почтовое слияние, которое создает индивидуальные отчеты для каждого студента. Содержание документа word содержит полосу, которая отмечена в единицах от минимально возможного до максимально возможного балла. Я легко могу указать имя и оценку учеников в документе, объединив данные из таблицы Excel. Однако я хотел бы указать на этой шкале баллов, где баллы студентов соответствуют. Условное форматирование "панели данных" в Excel будет работать для меня. Я бы просто поместил его под шкалу партитуры, и он показал бы, где баллы учеников помещаются на планке.
Я понимаю, что не могу объединить форматы, используя слияние по почте. Однако есть ли способ объединить "картинку" отформатированной ячейки. Другими словами, вместо слияния текста я бы выбрал "значок" из электронной таблицы и поместил его в соответствующее место в документе Word. Спасибо

1 ответ1

1

Вы можете попробовать следующее, но есть ряд условий, например, он, вероятно, будет иметь шанс работать, только если вы сможете объединиться с новым документом, а затем обновить все коды полей. Я не охватил все трудности здесь.

Я предполагаю, что вы используете Windows Word.

Во-первых, предположим, что ваши данные находятся в "Sheet1", со стандартной строкой заголовка в строке 1 и данными, начинающимися со строки 2, со счетом в столбце 5 и названным "счетом"

Откройте книгу в Excel

Установите рабочую книгу как источник данных для слияния

В Excel выберите оценку в первой строке данных (строка 2, столбец 5) и выберите Правка-> Копировать.

В Word используйте Paste-> Special, чтобы вставить ссылку в формате Picture.

В Word, если вы нажмете Alt-F9, вы должны увидеть код поля примерно так:

{ LINK Excel.Sheet.12 "C:\\mysheets\\databars1.xlsx" "Sheet1!R2C5" \a \p }

Выберите "2" в "R2C5" и удалите его, затем ...

используйте Ctrl-F9, чтобы вставить пару специальных фигурных скобок кода поля, чтобы вы имели

{  }

щелкните внутри и снова используйте Ctrl-F9, чтобы

{ {  } }

Во внутренних скобках введите MERGESEQ, чтобы

{ { MERGESEQ } }

Перед внутренними скобками введите «=», а после введите «+1», чтобы

{ ={ MERGESEQ }+1 }

(Есть два поля, которые возвращают номера строк, привязанные к источнику данных. Я не буду вдаваться в подробности, но одно из преимуществ {MERGESEQ} перед {MERGEREC} в этом случае заключается в том, что {MERGESEQ} не имеет значения, пока вы фактически не выполните слияние.

Если вы теперь используете Alt-F9, чтобы снова отобразить результат поля, и F9, чтобы обновить его, вы, вероятно, увидите сообщение об ошибке.

Теперь объединитесь с новым документом. Опять же, вам, возможно, придется принять меры, чтобы избежать ошибок. Когда слияние будет завершено, вы, вероятно, все равно увидите ошибки в результате. Используйте Alt-F9 - вы должны увидеть поля LINK, в которых есть поля вычисления, такие как {= 1+1}, {= 2+1}.

Выделите весь документ и нажмите F9, чтобы обновить все поля. Вы должны увидеть столбцы из соответствующих ячеек. Затем нажмите Shift-F9, чтобы отменить связь всех полей (это также отменит связь других вещей, так что вы можете этого не делать).

Проблема с Word заключается в том, что он имеет тенденцию уничтожать поля, вложенные в поля LINK, либо при обновлении результата поля LINK, либо при сохранении и повторном открытии документа. Я вполне уверен, что вы увидите, что если вы используете {MERGEREC} вместо {MERGESEQ}. Чтобы избежать этого, может быть полезно изменить поле LINK, чтобы оно больше не было полем LINK до сохранения, и вернуть его обратно при повторном открытии. например, изменить

{ LINK ... }

в

{ XLINK ... }

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

  • скопируйте изображения из Excel (если их так много - если есть сотни различных значений, я не думаю, что это будет практично) и используйте что-то вроде поля IF, чтобы вставить соответствующее изображение для каждого значения. Это, очевидно, будет отражать выбор форматирования при создании изображений, а не на листе во время слияния (например, что, если вы хотите изменить цвет полосы?) или же
  • Используйте события VBA и Word MailMerge (или постобработку, если вы выводите в новый документ), чтобы перейти и получить правильное изображение для каждой строки.

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