字:创建公式减去日期在Word中(Word: Create formula to subtract

2019-11-02 16:59发布

我在Word 2010中的表单,我试图进入两个日期,并获得天的差别。 我试图与一行三列创建表。 代替日期的我在第一和第二列输入的数字和在第三I输入的公式=B1 - A1 。 随着数字它的工作原理,但与日期。

是否有可能进入两个日期,并获得在Word 2010中日的区别? 我知道我可以很容易地做到这一点在Excel中,但因为形式是广泛的,我想尝试做它在Word中。

Answer 1:

如果您正在使用VBA,那么你可以使用DATEDIFF



Answer 2:

至少有3种类型的Word 2010的“在线形式”他们都让你发现变化对VBA领域。

  • 如果您使用的是旧的ActiveX形式(通常不建议这些天),您可以使用与每个控件关联的事件
  • 如果您使用的是所谓的“传统形式”你可以用在输入和On退出宏每个字段调用VBA
  • 如果您使用的内容控件,您可以使用内容控件的事件。

这3个选项中,只有传统的表格可在Mac上任何版本的Word,和VBA是现在无法使用在Mac Word 2008中。

如果你想避免VBA和使用领域,主要有两个方面的考虑:

  1. 有在公式字段{=}没有日期函数或运算符。
  2. 表单元格引用(见A1,B1等)也只有数字,没有日期的工作。

可以通过转换日期儒略日数,并使用{=}减去所得到的数字解决点(1)。 请参阅下面的一些建议的代码。

您可避免点(2)的问题,只要您使用表单字段输入日期。 然后你可以使用表单域的书签名称来获取文本和日期字段开关“\ @”来获得一天。 月份和年份数字。

因此,让我们假设你的两个日期表单域被称为DA和DB。 然后,您可以在您想要的结果在文档中插入点以下字段代码 - 注意到所有的{}对必须是特殊的域代码大括号,你可以用CTRL-F9进入。

{ SET MA { DA \@M } 
}{ SET CA { =INT((14-MA)/12) } 
}{ SET XD { ={ DA \@YYYY }-CA } 
}{ SET XC { =INT(XDA/100) } 
}{ SET XB { =XD-XC*100} 
}{ SET XA { =MA+12*CA-3 } 
}{ SET JA { =INT(146097*XC/4) + INT(36525*XB/100) + INT((153*XA+2)/5) + { DA \@D } + 1721119 } 
}{ SET MB { DB \@M } 
}{ SET CB { =INT((14-MB)/12) } 
}{ SET YD { ={ DB \@YYYY }-CB } 
}{ SET YC { =INT(YD/100) } 
}{ SET YB { =YD-YC*100 }
}{ SET YA { =MB+12*CB-3 } 
}{ SET JB { =INT(146097*YC/4) + INT(36525*YB/100) + INT((153*YA+2)/5) + { DB \@D } + 1721119 } 
}{ =JB-JA }

几点注意事项:

  • 这些域代码是基于所提供的计算这里
  • 变量名称已经更改了一点(X 1 - > XA等),并计算已经改变了一点,因为在该领域的语言中没有FLOOR功能,虽然有MOD功能是更好,如果你想避免你的场编码在国际上工作。
  • 在这种情况下,你可以省略这两个“-1721119”表达式。
  • 您可以在线路的起点除去大部分空间,在上述公式,如果你喜欢我已经制定了等领域的“} {”,因为这种做法隐藏段落标记显示领域的结果时。
  • 要知道,有可能是一个问题,当你预览根据单词的现场更新设置/打印。

有在使用日期计算领域的一个更完整的论文由“macropod”。 它使用的算法略有不同(可能更短)的版本,而且纸张也提供算法,在其他方向去,等等。 我认为你必须登录到从这里得到一个副本 ,但是你可以在其他地方找到它。



文章来源: Word: Create formula to subtract dates in Word