Excel VBA日期:与您的约会有乐趣!
为了确保你不是来这里寻找技巧在约会场景中脱颖而出,让我们来搞清楚:在这篇文章中,我们将做一个深入的VBA编程在excel中约会!
VBA代表应用程序的Visual Basic。它基本上是微软的集成事件驱动编程语言Visual Basic,和他们的Microsoft Office应用程序套件。VBA是最常用的MS Excel,你可以在这个课程中学习.VBA最流行的部分是它的宏,但我们将采取一个侧线和探索另一个重要方面-这是数据处理。(如果你有兴趣的话了解更多关于Excel VBA宏,请查看本课程)。我们假设您对Excel和Visual basic都有基本的熟悉程度。如果你是新手,请先告诉我用这个基本的VBA为Excel课程.或者,如果你只是需要更新你的概念,你可以这么做阅读本教程.
让我们开始吧!
Excel内部如何处理日期
您可以以任何人类可读的格式输入日期,例如美国格式(Month-Day-Year)或欧洲格式(Day-Month-Year)。Excel总是在内部以串行值的形式存储这些值。时间以十进制格式存储。这对于那些经常使用Excel的人来说非常有用——因为它使得添加日期或时间非常容易,甚至可以减去它们。它消除了计算日期、记录哪个月有30天、哪个月有31天、或者记住一小时是60分钟、时间不是十进制的烦琐。
何时使用VBA
有时您可能不得不做一个重复的任务,或者想要自动化它——这是VBA最常见的情况。更高级的用户也会使用VBA创建他们自己的算法来分析他们的数据,然后使用Excel的图表来整齐地显示数据(我们确实有终极VBA课程这向你展示了如何做到这一点-看看这里!)
如何使用VBA设置日期
VBA有一个简单的宏来设置日期。首先,您必须使用Dim语句声明一个变量。然后您可以使用DateValue函数,为变量分配一个日期。让我们快速看一下代码:
Date1 = DateValue("Jan 19, 2014") MsgBox年份(Date1)
奖金:正如您在示例中所看到的,您可以在末尾使用MsgBox命令在弹出消息中显示“年”,即2014 !多酷啊!
如何在VBA中添加2个日期
您可以使用非常通用的DateAdd函数添加两个日期,或一个天数,或几个月,或一个季度——基本上是任何日期单位)。让我们来看一个例子:
Date1 = DateValue("Jan 19, 2014") Date2 = DateAdd("d", 7, Date1) MsgBox Date2
请注意DateAdd函数的语法。
- “d”表示我们想要添加天数。
- “7”表示我们要加7天。
- “Date1”表示我们想给Date1添加7天。
因此,通过使用DateAdd函数向Date1添加7天,我们创建了一个新的日期Date2。
就像我们之前说的,除了天数,你还可以加上月、季度或其他任何时间。这些是DateAdd函数可以接受的选项
- yyyy:年
- 问:季度
- m:月
- y:一年中的一天
- d:天
- w:工作日
- ww:周
- h:小时
- 护士:分钟
- s:第二
从这个教程中休息一下,自己去尝试一些吧!
如何减去一个日期在VBA
大胆猜测一下。你认为如何在VBA中减去日期?这个函数会做什么?
Date1 = DateValue("Jan 19, 2014") Date2 = DateAdd("d", -7, Date1) MsgBox Date2
从字符串中获取日期
有时你可能会在Excel电子表格中以字符串的形式保存日期——例如“may /12/2014”。为了让您能够对它进行排序,或添加或减去它,您需要将其转换为实际的日期格式。你可以这样做。
Date1 = DateValue("19/Jan/2014") Range("A1")。值= Date1
这将使用字符串“19/Jan/2014”,并在内部将其转换为日期“19/1/2014”(或“1/19/2014”,取决于您的默认设置为美国或欧洲格式)。
奖金:你可以调用“Range”来保存日期Date1到单元格A1。
如何避免日期格式问题
根据你在地球的哪个地方,你可以使用美式的(月-日-年)或欧式的(日-月-年)。曾经遇到过这样的情况:你写的10/12/2013是指2013年10月12日,而地球另一边的供应商认为你想要在2013年12月10日交货?VBA有一个方法来确保你避免这样的错误-如果你使用正确。有一个dateseal函数,它强制您以特定的、中立的格式给出日期,从而避免所有歧义。语法
日期(年、月、日)
以下是它的用法:
Date1 = dateseal(2014, 1,19)范围(“A1”)。值=日期
在VBA中可以用日期做更多的事情。这只是冰山一角。我们强烈推荐您自己尝试使用VBA。你总是可以flex一些肌肉与MrExcel在这个VBA课程,或在这个终极VBA课程中取得飞跃.玩得开心,让我们知道它的进展!