要求:
在WORD中任意输入两个合法日期,如2005-1-10,2006-2-1,要求WORD域计算结果为1年1月-9天;如2004-10-5,2008-2-25,域计算结果为4年-8月20天.
说明:仅用WORD域.
[这次的WORD题,由于个人因素误点,请大家原谅!]
[em04][em04]
域代码为: { ASK DATE1 "请输入第一个日期yyyy-M-D" }
{ SET Y1 { DATE1 \@"YYYY" } }
{ SET M1 { DATE1 \@"M" } }
{ SET D1 { DATE1 \@"D" } }
{ ASK DATE2 "请输入第一个日期yyyy-M-D" }
{ SET Y2 { DATE2 \@"YYYY" } }
{ SET M2 { DATE2 \@"M" } }
{ SET D2 { DATE2 \@"D" } }
{ SET YNUM { ={ Y2 }-{ Y1 } } }
{ SET MNUM { ={ M2 }-{ M1 } } }
{ SET DNUM { ={ D2 }-{ D1 } } }
{ QUOTE "两日期相差为:"{ YNUM}"年"{ MNUM }"月"{ DNUM }"天"}
这是一个简单的WORD域计算,在EXCEL中,是再简单不过的了,但在WORD中,具体的天数计算还是无法象EXCEL那样直接相减得到。
这个题目的本意,是希望大家熟悉WORD中ASK域、REF域、FORMULA域、DATE域的应用。
在WORD中,用于人机交互的域(类似于VBA中的对话框)有两个,一个是ASK域,一个是FILLIN域,两者既有共同点,又有不同。ASK域以书签域的形式取得用户输入信息,相当于VBA中的变量赋值,以后可以多次调用该变量(书签);而FILLIN域可以用于一次性的人机对话数据交换,相当于把结果打印在该域中,也可以直接参与计算,并在模板新建文件时自动更新,但不能多次引用,如果需要多次调用时,需使用SET域,将其设置为书签域。
ASK域与FILLIN域多用于邮件合并中取得用户输入信息。
DATE域的年月日中的@图片开关,此处不多作解释,与EXCEL中相似。
关于REF域和FORMULA域,对于数字,可以通用,注意,当书签名与所有WORD域名重合时,REF可以省略,反之,应该加上REF以通知WORD,这是对指定书签域的引用而非WORD中的域。
域代码为: { SET TEST 2006 }
{ =TEST } 结果为2006
{ TEST } 结果为2006
{ SET X "2003Word" }
{ X } 结果为2003Word
{ =x } 结果为2003(此相当于vba.val函数)
QUOTE域用于插入文本,当以数字形式并以空格分隔时,可以插入数字对应的ASCII码后可得对应ACSII字符,见http://club.excelhome.net/viewthread.php?tid=142693&replyID=&skin=1;当文本使用引号括号时,域结果返回文本字符。
[此贴子已经被作者于2006-1-30 10:44:27编辑过] |