2017-02-08 49 views
1

我已经看到了很多寻找解决方案的例子,所以我非常确定这是可能的。计算字段不能和日期一起使用

我已经自定义文档属性(正确地定义为日期)包含日期
,我想就这些操作:

{={ DOCPROPERTY DateFieldTest }+1 \@"d MMMM YYYY"} 
'toggle DOCPROPERTY Field 
{=07/04/2016+1 \@"d MMMM YYYY"} 
'toggle calculation field 
1 

我也曾尝试:

{=DATE(YEAR({ DOCPROPERTY DateFieldTest }),MONTH({ DOCPROPERTY DateFieldTest }),DAY({ DOCPROPERTY DateFieldTest })+1) \@"d MMMM YYYY"} 
'toggle DOCPROPERTY Field 
{=DATE(YEAR(07/04/2016),MONTH(07/04/2016),DAY(07/04/2016)+1) \@"d MMMM YYYY"} 
'toggle calculation field 
!Syntaxe Error, (

我只想从的自定义文档属性(日期字段)中获取第二天的

但我似乎无法得到这个工作,有什么建议吗?

回答

2

查尔斯·肯扬已经花了一些时间收集了许多人的工作,并使其可在他的网站:http://www.addbalance.com/word/datefields2.htm

与日期计算的基本技巧是把它们分解为日,月,年,这你正在尝试,但是使用在Word字段中不起作用的VBA方法。事实上,在计算日期时,Word没有任何“智慧” - 你必须这样做。所以,简单的例子:

theDate + 1 = { DocProperty theDate \@ "MMMM" } { = {DocProperty theDate \@ "dd" } + 1 }, { DocProperty theDate \@ "yyyy" } 

这很好,直到你打到月的最后一天。然后,你要考虑做什么,如果它是一年的最后一天...


这是非常复杂的,所以我只是将信息从查尔斯的网站上复制:


这是一个头微调!下面是一个场,让你的日期从创建一个文件之日两周内,在正规书面英语格式:

  • 创建日期:2015年7月9日 - 所需的字段结果= 2015年7月23日
  • 创建日期:2014年7月23日 - 所需的字段结果= 2014年8月6日
  • 创建日期:2014年12月20日 - 所需的字段结果= 2015年1月3日
  • 创建日期:2015年2月27日 - 所需场结果= 3月 12,2015
  • 创建日期:2016年2月27 - 所需的场日期 结果= 2016年3月13日

    {QUOTE “{设定” 延迟”, “14”} {SET “DaysInMonth”{如果{CREATEDATE \ @ “MM” } = <> 2
    {= ROUND(30.575 * {CreateDate \“MM”},0) - ROUND575 * {= {CreateDate \“MM”} -1},0)} {IF {= MOD({CreateDate \ {SET {NextMonth} {IF {CreateDate \ @“MM”} = 12“1/97” “{= {CreateDate \ @”MM“} + 1}/97}} {IF {= {REF”Delay “} + {CreateDate \ @”dd“}} < = {REF”DaysInMonth“} {CreateDate \ @”MMMM {= {REF“Delay”} + {CreateDate \ @“dd”}},yyyy“} { QUOTE {NextMonth \ @“MMMM”} {= {REF“Delay”} + {CreateDate \ @“dd”} - {REF“DaysInMonth”}}, {IF {CreateDate \ @“MM”} <> 12 {CreateDate \ @“yyyy”} {CreateDate \ @“{= 1 + {CreateDate \ @”yyyy“}#”xxxx“}”}}}}“}

上面的示例字段中的颜色(下图中的图像!)表示我试图匹配字段分隔符并显示字段的嵌套。为了清楚起见,添加了换行符,不应该成为实际字段的一部分。我添加了这些修改帮助说明该字段的样子。以绿色显示的这些字段不包含嵌套字段,但可能包含对由其他字段设置的书签值的引用。

enter image description here

+0

THX,我看到这个,但我一直在寻找一个简单的解决方案!^^我想围绕'{= {DOCPROPERTY theDate \ @ “DDDD”} + 1}'这不工作,虽然'{= {DocProperty theDate \ @“dd”} + 1}'工作(太糟糕了)。最后,我把查尔斯肯尼恩的头部微调弄脏了我的双手,并让它工作!我将在稍后解释它发布答案! (顺便说一句,区域设置也会影响到... T_T我已经在工作中使用了法语设置,并且在公式|以及用'.'来替换''',''以'''小数点分隔符! – R3uK