我的标志

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

您可以看到这是多么有用–特别是如果您使用Excel进行办公室工作!使用Visual Basic for Applications需要对Visual Basic语言有一定的熟悉度。VisualBasic是由Microsoft开发的,它使开发人员能够轻松地制作Windows友好型应用程序。如果您不熟悉Visual Basic for Applications,应该考虑报名参加VBA入门课程和我们在一起。我们将回顾你需要知道的一切(从基础到高级的东西)-你将在任何时间编写自己的宏。在我们继续之前,你可能想通过这个快速入门VBA,复习基础知识。

DateDiff函数语法

在本教程中,我们将给你一个详细的,易于理解的概述的DateDiff函数在VBA。我们还将教你如何从基础开始编写自己的宏。即使您不熟悉这个过程,如果您严格按照本教程中列出的步骤来操作,您也应该能够创建一个正常工作的宏。

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

DateDiff(间隔、日期1、日期2、[firstdayofweek]、[firstweekofyear])

您必须指定interval、date1和date2参数。您不需要指定firstdayofweek和firstweekofyear参数。您可以将interval参数更改为天、星期、星期、小时、秒或年(在其他值中)。date1和date2将是两个时间段的开始日期和结束日期——您指定的间隔将是您接收结果的方式。例如,如果您想找出两个日期之间的天数差异,您将必须使用“天”间隔。如果你想找出两个日期在数周内的差异,你必须使用“周”时间间隔。如果不指定firstdayofweek参数,则将一周的第一天设置为周日。如果不指定firstweekofyear参数,则将一年的第一周设置为包含1月1日的那一周。

创建命令按钮

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

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

VBADateDiff

一个名为Developer的新标签现在将在顶部的View标签旁边可用。Developer选项卡中有我们所需要的命令按钮。找到插入选项并选择活动X控制子菜单下的“命令按钮”。顶部的设计模式按钮将变得突出显示,您的指针将变成一个黑色的十字。点击电子表格中的任何单元格生成一个命令按钮,如下面的截图所示:

VBADateDiff1

可以将命令按钮拖放到电子表格中的任何位置。默认情况下,出现在命令按钮上的标题为“CommandButton 1”。通过右键单击命令按钮并选择“属性”,可以更改该按钮的名称。左侧将弹出一个大的属性列表。我们建议您不要在此处更改任何内容(特别是如果您是VBA新手),除了标题标签。重命名标题标签会将命令按钮的visiblename更改为其他名称。例如,在我们的图像中,我们将命令按钮的可见标题更改为“查找日期”:

VBADateDiff2

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

VBADateDiff3

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

使用DateDiff函数查找两个日期在天中的差异

现在,我们终于可以为DateDiff函数编写代码了。首先,让我们创建一个DateDiff函数,该函数允许我们找出两个时间段之间的天数差异。DateDiff函数的语法如下所示:

DateDiff(间隔、日期1、日期2、[firstdayofweek]、[firstweekofyear])

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

声明变量的代码如下所示:

dateone作为日期,datetwo作为日期,days作为整数

在这里,我们将dateone和datetwo声明为“Date”变量。它们将以日期格式(“月、日、年”)保存数据。Days将以“整数”(数字)保存数据。

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

dateone=DateValue(“2014年3月10日”)DateII=DateValue(“2014年3月15日”)

然后,我们编写DateDiff函数。为此,我们使用“天”变量:

天数=日期差(“d”,日期一,日期二)

这里,“d”告诉visualbasic使用“天”时间间隔。

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

MsgBox天数

完整的程序如下:

Private Sub CommandButton1_Click()将日期一设为日期,日期二设为日期,天数设为整数dateone=DateValue(“2014年3月10日”)datetwo=DateValue(“2014年3月15日”)days=DateDiff(“d”,dateone,datetwo)MsgBox days结束子命令

您可以复制粘贴整个代码,但我们建议您自己输入它,以获得VB的感觉。一旦你完成了输入,alt标签到你的Excel电子表格。设计模式将是活动的-单击设计模式按钮(在开发人员选项卡)取消激活它。最后,单击命令按钮。会弹出一个日期不同的消息框。您可以更改dateone和datetwo变量的值以获得不同的结果。你也可以尝试本VBA Excel课程中的一些示例.

使用DateDiff函数查找周内两个日期的差异

您可以使用DateDiff函数查找两个指定日期之间的周数差异,而不是天数差异。代码类似-您只需将“d”(interval)参数替换为“ww”。只需修改我们之前编写的程序,如下所示:

Private Sub CommandButton1_Click()将日期一设为日期,日期二设为日期,天数设为整数dateone=DateValue(“2014年3月10日”)datetwo=DateValue(“2014年3月15日”)days=DateDiff(“ww”,dateone,datetwo)MsgBox days End Sub

现在尝试单击命令按钮(记住禁用设计模式)。您将得到“0”作为结果。为什么会这样?

在本例中,两个日期之间的周数差为0。如果将dateone或datetwo的值更改为一个月或两个月,则会得到不同的结果。试着自己做实验看看。您还可以将时间间隔更改为秒(s)、分钟(n)、小时(h)、一年中的某一天(y)或月份(y)。对于列表,请使用鼠标(高亮显示)选择VBA中的DateDiff函数,然后按F1键。您还可以尝试指定firstdayofweek和firstweekofyear参数。

DateDiff函数是VBA中最简单、最有用的函数之一。请随意试用。一旦你准备好提高一个档次,就开始吧伸展自己与我们的高级VBA课程.

最后更新的网页:2020年2月

Excel VBA顶级课程

解锁Excel VBA和Excel宏
莱拉·格拉尼
4.7 (29,086)
畅销书
掌握Microsoft Excel宏和Excel VBA
凯尔尤
4.6 (13,467)
畅销书
最终Excel VBA
马克·塔尔伯特
4.6 (3,361)
最终的Excel VBA用户表单与访问数据库
m·穆斯塔法BOLAT
5. (152)
评价最高
Microsoft Excel VBA -用基础知识解决复杂问题
希勒·姆兰加
4.7 (33)
评价最高
Excel VBA编程-完整指南
鲍里斯·帕斯卡弗
4.7 (3,913)
用excelvba实现Web自动化
丹尼尔强
4.5 (795)
畅销书
microsoftexcelvba简介
凯尔尤
4.7 (1,239)

更多Excel VBA课程

Excel VBA学生也学习

授权你的团队。引领行业。

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

请求一个演示