我已经看过很多寻找解决方案的例子,所以我很确定这是可能的。
我有自定义文档属性(正确定义为日期),其中包含日期,
我想对它们进行操作:
{={ 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, (
我只是尝试从自定义文档属性(日期字段)中的日期获取第二天。
但我似乎无法让这个工作,任何建议?
答案 0 :(得分:2)
计算日期的基本技巧是将它们分解为您正在尝试的日,月和年,但使用在Word字段中不起作用的VBA方法。事实上,在日期计算方面,Word没有任何“聪明” - 你必须做到这一切。所以,简单的例子:
theDate + 1 = { DocProperty theDate \@ "MMMM" } { = {DocProperty theDate \@ "dd" } + 1 }, { DocProperty theDate \@ "yyyy" }
这很好,直到你打到月的最后一天。如果这是一年中的最后一天,你必须考虑该怎么做......
这非常复杂,所以我只想复制Charles网站上的信息:
这是一个头部旋转器!以下是一个字段,以常规书面英文格式为您提供文档创建之日起两周的日期:
创建日期:2016年2月27日 - 期望的字段日期 结果= 2016年3月13日
{QUOTE“{SET”延迟“”14“}
{SET“DaysInMonth”{IF {CreateDate \ @“MM”}<> 2
{= ROUND(30.575 * {CreateDate \ @“MM”},0) -
ROUND(30.575 * {= {CreateDate \ @“MM”} -1},0)}
{IF {= MOD({CreateDate \ @“yy”},4)}> 0“28”“29”}}}
{SET“NextMonth”{IF {CreateDate \ @“MM”} = 12“1/97”
“{= {CreateDate \ @”MM“} + 1} / 97}}
{IF {= {REF“延迟”} + {CreateDate \ @“dd”}}< = {REF“DaysInMonth”}
{CreateDate \ @“MMMM {= {REF”Delay“} + {CreateDate \ @”dd“}},yyyy”} {QUOTE {NextMonth \ @“MMMM”}
{= {REF“延迟”} + {CreateDate \ @“dd”} - {REF“DaysInMonth”}},
{IF {CreateDate \ @“MM”}<> 12 {CreateDate \ @“yyyy”}
{CreateDate \ @“{= 1 + {CreateDate \ @”yyyy“}#”xxxx“}”}}}}“}
上面示例字段中的颜色(图片下方!)代表我尝试匹配字段分隔符并显示字段嵌套。为清楚起见,添加了换行符,不应该是实际字段的一部分。我添加了这些修改有助于说明该字段的外观。绿色显示的那些字段不包含嵌套字段,但可能包含对其他字段设置的书签值的引用。