VBA CDATEVisual Basic应用程序或VBA是一种脚本语言,它允许在Microsoft Office套件的产品任务的自动化。这也是一个事件驱动的编程语言,它包含了很多有用的功能。它是由程序员利用建立有效和高效的宏。了解更多关于什么VBA可以帮你做,在这个tutoria湖今天,我们将采取它在这个中级教程领先一步,看一看在关键日期函数即CDATE()。此功能用于将字符串或数字转换成日期格式。

我们假设你有工作MS Excel和VBA的知识。如果你是新来这个概念,我们建议您通过我们的介绍课程到Excel VBA

日期系统在Microsoft Excel中

日期和时间函数在MS Excel和VBA频繁使用。因此,重要的是你知道的日期和时间函数的基本概念,如果你想操纵和在你的程序中使用它们是非常重要的。请注意,MS Excel存储日期被称为串行值的顺序编号。MS Excel中认为时间是一天的一部分,并且它被存储为小数。日期和时间可以相加和相减。因此,他们可以包含在很多计算和VBA程序。也就是说,你可以比较两个日期减去另一个日期。您可以了解更多有关这在我们的Excel课程

有在MS Excel-两个日期系统的1900年和1904年通过默认的Microsoft Excel的Windows 1900和Macintosh是1904,如果你想通过单击工具菜单上可以更改日期系统。然后点击“选项”,然后选择“计算选项卡。”在计算选项卡,选中或清除1904日期系统复选框。

你也应该知道,日系统会自动当您打开从另一个平台Excel工作表改变。也就是说,当你在Excel中打开的Macintosh创建工作表,而在Excel工作为Windows时,系统会自动选择1904日期系统。

下表显示了每个日期系统中第一个和最后日期。

日期系统

第一次约会

最后日期

1900 1900年1月1日

(串行值1)

12月31日,9999

(串行值2958465)

1904 1904年1月2日

(串行值1)

12月31日,9999

(串行值2957003)

Microsoft Excel如何解释两位数字的年份

如果您使用的是Microsoft Windows 2000或更高版本,在控制面板控制区域选项Excel如何解释两位数年份。如果你想MS Excel中,你想要它是假定年份值,输入年份为四位数值。原因是,Excel将不解释世纪。

例如,而不是输入“00”的2000年,你应该输入所有的四位“2000”。

如何日期的MS Excel解释年份部分,输入一个字符串或文本

Microsoft Excel中VBA有许多日期和时间功能。1.几个重要的被日期(),日(),现在(),使用DateAdd(),TimeSerial的()和DateSerial()。它还具有的数据类型转换函数相等数目。被频繁在VBA编程中使用的一种重要的数据类型转换功能是CDATE()。至了解更多有关Excel VBA,你可以看看这门课程

什么是CDATE()函数

CDATE识别日期和时间文字并将它们转换到日期日期类型(有一些数字,在可接受的日期范围内一起)。如果存在数的小数部分它被转换为从午夜开始一天中的时间。

该CDATE()函数识别日期格式取决于系统的区域设置。日,月,年的正确顺序将不受此功能如果在低于公认日期设置以外的其他格式输入来实现。如果日起不指定年份,,则使用当前年份。还要注意的是长日期格式无法识别,如果它也包含了一天的星期几的字符串。

VBA CDATE()将任何数据类型,字符串或整数的值,转换成日期的类型。此日期函数的语法如下

CDATE(表达式)

这里参数表达式是强制性的。当你输入一个有效的日期和时间表达式此功能将其转换为Date类型。让我们把这个概念明确使用一个简单的例子。

实施例1:

功能FnCDate()昏暗strDate_1昏暗intDate_1昏暗strTime_1 strDate_1 = “2014年1月24日” intDate_1 =#10/03/2014#strTime_1 = “十五时30分15秒PM” MsgBoxCDate(strDate_1)MsgBoxCDate(intDate_1)MsgBoxCDate(strTime_1)完功能

在节目中,三个变量strDate_1,IntDate_1和strTime_1声明。这些变量赋值“2014年1月24日”,分别为#10/03/2014#和“15时30分15秒PM”。这些变量通过CDATE()函数。输出如下。

对于MsgBoxCDate(strDate_1)输出中显示为“24-01-2014”。

对于MsgBoxCDate(intDate_1)输出中显示为“2014年3月12日”。

对于MsgBoxCDate(strTime_1)输出中显示为“15点30分十五秒”。

如何转换文本字符串日期在MS Excel VBA使用CDATE()函数

当您正在使用包含日期数据的工作,你需要对如何使用日期数据类型清晰的概念。从MS Excel版本2000年起,你有VBA来自动执行任务,否则你将手动执行。这通常是用宏的帮助下(完成你可以了解更多有关VBA宏在这个过程中)。VBA CDATE()函数是最常用的日期函数转换存储在“字符串”变量为日期数据类型的日期之一。下面将帮助给出的例子,要把概念搞清楚。

打开MS Excel和按以下格式在单元格A1输入日期:

2014年3月24日

要打开“Visual Basic编辑器”,单击“开发”选项卡,然后在“Visual Basic中”。在编辑器中点击“插入”菜单,然后单击“模块”。这将插入一个新的代码模块。这里是你写的代码。

实施例2:

子converTextToDate()昏暗Current_DateAs日期昏暗Date_StringAs字符串范围( “A1”)。选择DATE_STRING =范围( “A1”)。值CURRENT_DATE = CDATE(DATE_STRING)范围( “C1”)。选择范围( “C1”)。值= CURRENT_DATE结束子

让我们在节目一探究竟。

在这个方案中,两个变量,“CURRENT_DATE”和“DATE_STRING”已被定义为类型分别为日期和字符串。范围(“A1”)。选择将获得的细胞A1.Date_String =范围(“A1”)签订Valuestores在“字符串”变量Date_String.Current_Date = CDATE的日期。(DATE_STRING)将字符串转换成Date数据类型和将其存储在变量“CURRENT_DATE”。最后两个步骤将光标移动到小区C1,并执行程序时显示在柱C1的日期。

在接下来的节目中,我们就来看看如何使用VBA CDATE()函数两个日期进行比较。

请注意,在VBA比较日期,你需要有存储在类型为“日期”的变量日期。但是,如果日期是您比较被输入数字或字符串,则需要使用CDATE()函数将其转换。“如果声明”是用来比较的日期。下面的例子有助于使概念清晰。

实施例3:

公用Sub CompareDates()昏暗D1,D2作为对象日D1 = CDATE( “24/1/2013”​​)D2 = CDATE( “24/1/2014”)如果(D1  D2)。然后Debug.Print“日期1发生晚于日期2”。如果(D 1 = D)然后Debug.Print“日期1是相同的日期2”。结束小组

如果你碰巧在数据定期工作包含日期栏,它始终是明智的创建宏。只要你想在你的表中删除行调用宏。这里是一个删除之前的日期的示例“12/30/2011”。

实施例4:

子DeleteRowbyDate()昏暗X只要对于x = 1至Cells.SpecialCells(xlCellTypeLastCell).Row Debug.Print细胞(X, “B”)。值如果CDATE(细胞(X, “B”))
    

在这个例子中使用日期小于“2011/12/29”的所有行会deleted.For例如,如果你想对2012年12月29日从表中删除之前所有行,那么你将不得不改变线路:

如果CDATE(细胞(X, “B”))
    

我们希望这为您提供了多种选项提供给您一个很好的理解,在Excel和使用VBA日期工作时。像往常一样,最好的办法来熟悉这些公式,就是去试一下为自己。如果你愿意的话,Excel的先生有很多例子一个好的课程,帮助你的方式

在Excel VBA热门课程

介绍到Microsoft Excel VBA
凯尔皮尤
4.7 (960)
Excel的VBA练习和真实世界的项目
卡伦Tateosyan
4.5 (156)
解锁Excel的VBA和Excel宏
莱拉Gharani
4.6 (21021)
畅销书
法师的Microsoft Excel宏和Excel VBA
凯尔皮尤
4.5 (9468)
畅销书
终极Excel的VBA
马克塔尔伯特
4.5 (2956)
Excel的VBA编程 - 完全指南
鲍里斯Paskhaver
4.6 (3254)
完整的Web自动化与Excel VBA
丹尼尔强
4.5 (606)
畅销书
终极Excel的VBA数组课程
丹尼尔强
4.4 (406)
Excel宏和Excel VBA编程入门
安德烈亚斯Exadaktylos
4.2 (614)

更多Excel的VBA课程

Excel中VBA的学生还学

使您的团队。引领行业。

获取订阅的在线课程和数字学习工具库与您Udemy组织业务。

申请演示