2016-06-08 4 views
0

У меня есть документ MailMerge Word, связанный с электронной таблицей Excel для данных. Там есть два столбца дат (отформатированных как Short Date в Excel).Формат MailMerge как дата не работает

При попытке использовать эти поля в своем документе Word MailMerge я не могу получить даты, чтобы они отображались как даты ... вместо этого она показывает дату «Excel», скажем, 42156 вместо 6/01/2015.

У меня есть lookedaround и попытался, но он, похоже, не работает. Вот текст в слове после нажатия ALT + F9:

{ MERGEFIELD Start_Date \@"d,MMMM,YYYY" } 

Я играл с другими версиями \@"dd,MMM,yyyy", но ничего, кажется, поймать.

Что я могу игнорировать или не делать?

(Скриншот текста в Слове):

(Screenshot)

+0

@bibadia - Спасибо за ваши комментарии! Я перечитал этот поток и собирался попробовать ваше предложение ... затем я убедился, что форматы Excel верны, и когда я открыл свой документ MailMerge, даты отображаются правильно! Спасибо за ваши советы и мысли, помог мне! – BruceWayne

ответ

1

вопрос вы ссылка была первоначально о другой проблеме, которая связана с разворота дня и месяца числа, когда поставщик OLE DB участвует в получении данных.

обычной проблемы, когда вы видите «числовые даты Excel» является то, что вы смешали тип данных в течение первых нескольких строк соответствующего столбца в Excel и поставщик OLE DB (или, возможно, драйвер ODBC) определилом что столбец «Числовой». Это довольно подробное описание на архивной веб-странице here.

Таким образом, наилучшим решением является исправление данных, если у вас есть контроль над ним.

В противном случае один из ответов в потоке, который вы ссылаетесь, имеет набор кодов полей, которые будут переводить цифры «даты» Excel в дату, с которой может работать Word. Проблема в том, что если столбец имеет даты, отформатированные как текст, они будут потеряны, поскольку поставщик/драйвер преобразует текстовые значения в число 0.

Ответный ответ «макроподом», который имеет следующее полевое кодирование, которое я изменил в соответствии с вашим заявленным требованием. Все {} должны быть специальные скобки пары кода поля, которые можно ввести с помощью Ctrl-F9 в версиях Windows, в Word:

{QUOTE 
{SET Delay{=INT({MERGEFIELD Start_Date})}} 
{SET jd{=2415019+Delay}} 
{SET e{=INT((4*(jd+32044)+3)/146097)}} 
{SET f{=jd+32044-INT(146097*e/4)}} 
{SET g{=INT((4*f+3)/1461)}} {SET h{=f-INT(1461*g/4)}} 
{SET i{=INT((5*h+2)/153)}} 
{SET dd{=h-INT((153*i+2)/5)+1}} 
{SET mm{=i+3-12*INT(i/10)}} 
{SET yy{=100*e+g-4800+INT(i/10)}} 
"{dd}-{mm}-{yy}" \@ "D,MMMM,yyyy"} 

(Лично я считаю, что лучше использовать {yy}-{mm}-{dd} в последней строке, как это похоже, лучше справляется с проблемами локализации)