计算字段不适用于日期

时间:2017-02-08 15:17:01

标签: ms-word ms-office word-vba office-2013 word-field

我已经看过很多寻找解决方案的例子,所以我很确定这是可能的。

我有自定义文档属性(正确定义为日期),其中包含日期
我想对它们进行操作:

{={  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, (

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

但我似乎无法让这个工作,任何建议?

1 个答案:

答案 0 :(得分:2)

Charles Kenyon花了一些时间收集很多人的作品,并在他的网站上公布:http://www.addbalance.com/word/datefields2.htm

计算日期的基本技巧是将它们分解为您正在尝试的日,月和年,但使用在Word字段中不起作用的VBA方法。事实上,在日期计算方面,Word没有任何“聪明” - 你必须做到这一切。所以,简单的例子:

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

这很好,直到你打到月的最后一天。如果这是一年中的最后一天,你必须考虑该怎么做......

这非常复杂,所以我只想复制Charles网站上的信息:

这是一个头部旋转器!以下是一个字段,以常规书面英文格式为您提供文档创建之日起两周的日期:

  • 创建日期:2015年7月9日 - 期望的现场结果= 2015年7月23日
  • 创建日期:2014年7月23日 - 期望的字段结果= 2014年8月6日
  • 创建日期:2014年12月20日 - 期望的字段结果= 1月3日, 2015
  • 创建日期:2015年2月27日 - 期望的字段结果= 3月 12,2015
  • 创建日期: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“}”}}}}“}

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

enter image description here