datediff vbaVisual Basic for Applications (VBA)被集成到Microsoft Office套件的程序中,比如Microsoft Word和Microsoft Excel。VBA允许您编写宏(简短、简单的程序),这些宏可用于自动执行重复执行的任务。例如,在Excel中,您可以编写一个宏,允许您从一列复制单元格范围内的数据,并将其粘贴到另一列中。

你可以看到这是多么有用-特别是如果你使用Excel办公!在应用程序中使用Visual Basic需要对Visual Basic语言有一定的熟悉。Visual Basic是由微软开发的,它使开发人员能够轻松地制作windows友好的应用程序。如果你不熟悉Visual Basic的应用程序,你应该这样做考虑报名参加VBA入门课程和我们在一起。我们将介绍您需要了解的一切(从基础到高级资料) - 您将在任何时候都在编写自己的宏。在我们继续之前,您可能需要在VBA上浏览这个快速底漆,来温习基本知识。

日期函数语法

在本教程中,我们将为您提供详细的,易于理解的VBA中的日期函数。我们还将教您如何从基础知识编写自己的宏。即使您不熟悉此过程,您也应该能够创建功能宏如果您按照本教程中概述的步骤给字母。

VBA中的DateDiff函数可以用来找出两个不同指定时间段之间的时间间隔。DateDiff函数的语法是:

DateDiff (interval, date1, date2, [firstdayofweek], [firstweekofyear])

您始终必须指定间隔,date1和date2参数。您无需指定FirstDayOfWeek和FirstWeekofyear参数。您可以将区间参数,平日,周,小时,第二或年(其他值)更改为日期,平日,周,小时,第二个或年份。DATE1和DATE2将是您两个期间的开始日期和结束日期 - 您指定的间隔将是您接收结果的方式。例如,如果您想在几天内发现两个日期之间的区别,则必须使用“天”间隔。如果您想在数周内发现两个日期之间的差异,则必须使用“周”时间间隔。如果您未指定FirstDayofWeek参数,本周的第一天将按周日设置。如果未指定FirstWeekofyear参数,则将在一年的第一周将设置为包含1月1日的一周。

创建命令按钮

在向您展示编写DateDiff函数的代码之前,您应该在Excel电子表格中插入一个命令按钮。什么是命令按钮,为什么我们需要它?当单击命令按钮时,将运行链接到它的代码。您可以使用命令按钮开始执行宏并获得结果。命令按钮的一个例子是Windows内置计算器上的“=”按钮。在我们的例子中,我们将把命令按钮链接到DateDiff函数。

首先,您应该在Excel中启用Developer选项卡。默认情况下禁用此选项卡。Developer允许您创建宏并为电子表格添加功能和设计。要启用选项卡,请右键单击顶部的功能区,然后在下拉菜单中选择“自定义功能区”选项。在这里,您应该选择“开发人员标签”选项,然后单击“确定”,如下屏幕截图。你也可以在我们的24小时VBA培训师课程中查看这一点

VBADateDiff

现在,名为Developer的新选项卡将在顶部的“视图”选项卡旁边可用。开发人员选项卡具有我们以后的命令按钮。找到INSERT选项,然后在Active X Controls子菜单下选择“命令按钮”。顶部的设计模式按钮将突出显示,您的指针将变成黑色十字架。单击电子表格中的任何单元格以SPAWN命令按钮,如在下面给出的屏幕截图中:

VBADateDiff1

您可以将命令按钮拖放到电子表格中的任何位置。出现在命令按钮上的标题默认为“CommandButton 1”。您可以通过右键单击命令按钮并选择属性来更改命令按钮的名称。左边会弹出一个很大的属性列表。我们建议您不要在这里更改任何东西(特别是如果您是VBA的新手),除了标题标签。重命名标题标签将改变你的命令按钮的可见名称为其他东西。例如,在我们的图像中,我们将Command Button的可见标题更改为" Find Date ":

VBADateDiff2

现在,我们需要为DateDiff函数编写代码,并将其链接到这个命令按钮。这样,当我们点击“Find Date”时,DateDiff函数将返回一个值。右键单击命令按钮,选择“查看代码”选项。这将打开Microsoft Visual Basic for Applications屏幕。这是我们编写代码的地方。它应该看起来像这样:

VBADateDiff3

我们将在Private Sub CommandButton1_Click()和End Sub语句之间编写DateDiff函数的代码。CommandButton1_Click()代码行告诉VBA在用户单击命令按钮时执行它后面找到的代码。你可以了解更多关于如何创建自己的宏和命令按钮在这个VBA课程

使用日期使用日期的日期差异

现在,最后,我们可以为日期函数编写代码。首先,让我们创建一个日期的函数,让我们在几天内发现两个时间段之间的差异。如上所述,日期函数的语法是:

DateDiff (interval, date1, date2, [firstdayofweek], [firstweekofyear])

首先,我们需要初始化三个不同的变量来保存结果的值(以天为单位)和两个时间段:date1和date2。如果你以前学过其他语言(如C或Java),你就知道为什么我们需要声明这些变量。如果你不熟悉编程,你也可以报名参加一个基本的C语言编程课程和我们在一起。

声明变量的代码如下:

暗淡的约会作为日期,DateTWO为日期,天数天

在这里,我们已将约会和DateTWO声明为“日期”变量。它们将以日期格式(“月日,年”)保持数据。天将将数据保存为“整数”(数字)。

接下来,我们需要将值分配给thedateone和dateTwo变量。这些将是我们的两个时间段:

dateone = DateValue(" 2014年3月10日")

然后,编写DateDiff函数。我们使用“days”变量来实现这个目的:

day = DateDiff (" d ", dateone, datetwo)

这里,“d”告诉Visual Basic使用“day”时间间隔。

最后,我们需要显示结果。为此,我们使用一个消息框。只需在末尾键入单行代码:

对话框的日子

完整方案如下:

Private Sub CommandButton1_Click() Dim dateone As Date, datetwo As Date, days As Integer dateone = DateValue(" Mar 10, 2014 ") datetwo = DateValue(" Mar 15, 2014 ") days = DateDiff (" d ", dateone, datetwo) MsgBox days结束Sub

您可以复制整个代码,但我们建议您自己输入它以获得VB的感觉。完成键入后,alt选项卡到您的Excel电子表格。设计模式将在“设计模式”按钮(在“开发人员选项卡中)”中,以便停用它。最后,单击“命令”按钮。应弹出具有日期差异的消息框。您可以更改约会和DATETWO变量的值以获得不同的结果。你也可以试试这个Excel VBA课程中的一些例子

使用日期函数在几周内找到两个日期之间的差异

您可以使用DateDiff函数来查找两个指定日期之间的周数差异,而不是天数。代码是类似的-你只需要用" ww "替换" d "(间隔)参数。只需修改我们之前写的程序,像这样:

Private Sub CommandButton1_Click() Dim dateone As Date, datetwo As Date, days As Integer dateone = DateValue("Mar 10, 2014") datetwo = DateValue("Mar 15, 2014") days = DateDiff("ww", dateone, datetwo) MsgBox days结束Sub

现在试着点击命令按钮(记住禁用设计模式)。结果是“0”。为什么会这样呢?

在本例中,这两个日期之间的周数之差为0。如果将dateone或datetwo的值更改为一两个月,将得到不同的结果。自己尝试一下,看看。你也可以改变时间间隔秒(s),分钟(n),小时(h),日的年(y)或月(y)。您也可以尝试指定firstdayofweek和firstweekofyear参数。

DateDiff函数是VBA中最简单和最有用的函数之一。你可以随意尝试。一旦你准备好升级,就开始吧用我们的高级VBA课程伸展自己

Excel VBA的顶级课程

Excel Macros和VBA为初学者
Bluelime学习解决方案
4.4 (15)
新的
解锁Excel VBA和Excel宏
莱拉Gharani
4.7 (26783)
畅销书
Microsoft Excel VBA简介
凯尔·佩
4.6 (1,160)
完整的Web自动化与Excel VBA
丹尼尔强
4.7 (737)
畅销书
Excel VBA宏:超消歧Excel VBA编程
格兰特赌博
4.5 (987)
畅销书
熟练掌握微软Excel宏和Excel VBA
凯尔·佩
4.5 (11644)
畅销书
终极Excel VBA.
马克Talbert
4.7 (3194)
Excel VBA编程-完整指南
鲍里斯Paskhaver
4.7 (3,727)
Excel宏和Excel VBA编程初学者
Andreas Exadaktylos
4.5 (854)
收视率最高
Excel VBA练习和现实世界项目
凯伦Tateosyan
4.4 (220)

更多Excel VBA课程

Excel VBA学生还学习

让你的团队。领导行业。

使用Udemy for Business订阅在线课程库和数字学习工具。

请求演示