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