VBA-获取指定日期的前一天

VBA-获取指定日期的前一天,vba,ms-word,Vba,Ms Word,我目前正在尝试编写一段代码,其中用户提供一个文本框,以输入dd/mm/yyyy格式的日期,一旦指定了日期,我希望获得该日期之前的一天 例如,用户输入2018年12月14日,我希望VBA将2018年12月13日存储到另一个变量 可能是一个愚蠢的查询,但如果知道这是否可行,那就很方便了。没关系,我已经猜出来了 如果有人想知道,我会这么做: Dim FirstRun as Date Dim FirstRunBefore as Date FirstRun = InputBox("Enter date"

我目前正在尝试编写一段代码,其中用户提供一个文本框,以输入dd/mm/yyyy格式的日期,一旦指定了日期,我希望获得该日期之前的一天

例如,用户输入2018年12月14日,我希望VBA将2018年12月13日存储到另一个变量


可能是一个愚蠢的查询,但如果知道这是否可行,那就很方便了。

没关系,我已经猜出来了

如果有人想知道,我会这么做:

Dim FirstRun as Date
Dim FirstRunBefore as Date

FirstRun = InputBox("Enter date")
FirstRunBefore = Format(DateAdd("d", -1, FirstRun), "dd mmmm yyyy")

您误用了格式化功能。当某物是一个日期时,它实际上是一个整数,例如今天,它是43440,使用您的系统设置显示,例如“6.12.2018”。如果要以其他格式存储,则必须将格式化值传递给字符串变量。总之,无论应用何种格式,FirstRunBefore都是相同的。DateAddd,-1,FirstRun可以是FirstRun-1。此外,如果输入无效,您可能需要设置一些错误捕获,例如,2018年12月14日如果您的区域设置使用2018年12月14日,您可以使用FirstRun=Application.InputBoxEnter date,键入:=1以确保输入了一个数字2018年1月1日也被视为一个数字,或者@iamanigeet注释了-如果是datefirstrun,则检查它是一个日期。。。。