VBA格式日期|如何在VBA代码中更改日期格式?

Excel VBA格式日期

在VBA中格式化日期 我们使用内置的FORMAT函数本身,它将输入作为日期格式并返回所需的所需格式,此函数所需的参数是表达式本身和格式类型。

日期和时间格式是excel中的敏感内容,同样适用于VBA。默认日期和时间基于我们工作的系统日期,这可能因系统而异。在本文中,我们将向您展示使用VBA代码格式化日期的不同技术。

要使用VBA编码更改日期格式,我们需要了解什么是日期格式及其对日期的影响。

下表显示了不同的日期格式及其代码。

因此,如果您牢记上面的图表通过VBA编码格式化日期根本不是一件艰巨的任务。

如何在VBA中更改日期格式?

以下是excel VBA日期格式的示例。

您可以在此处下载此VBA格式日期Excel模板– VBA格式日期Excel模板

范例#1

例如,我们在工作表的多个单元格中具有相同的日期,如下所示。

现在,我们将为同一日期应用不同的日期格式,以查看不同日期格式代码的影响。

首先,将相同的数据也复制到下一列,以查看影响。

对于第一个日期,即单元格A1,我们将应用 “ DD-MM-YYYY” 格式。

首先在代码中,我们需要使用 范围 目的。

代码:

 Sub Date_Format_Example1()范围(“ A1”)结束Sub 

由于我们正在更改单元格的日期格式,因此我们需要访问“数字格式” RANGE对象的属性。

代码:

 Sub Date_Format_Example1()Range(“ A1”)。NumberFormat End Sub 

访问“数字格式”,我们需要通过放置等号来设置数字格式,并在双引号中应用格式代码。

代码:

 Sub Date_Format_Example1()Range(“ A1”)。NumberFormat =“ dd-mm-yyy”'这会将日期更改为“ 23-10-2019”结束 

当我们执行此代码时,它将数字格式应用于单元格 A1 作为 ”DD-MM-YYY”.

输出:

范例#2

同样,我也为其他单元格应用了不同的格式代码,以下是为您提供的VBA代码。

代码:

 Sub Date_Format_Example2()Range(“ A1”)。NumberFormat =“ dd-mm-yyy”'这会将日期更改为“ 23-10-2019” Range(“ A2”)。NumberFormat =“ ddd-mm-yyy” '这会将日期更改为“ Wed-10-2019” Range(“ A3”)。NumberFormat =“ dddd-mm-yyy”'这会将日期更改为“ Wednesday-10-2019” Range(“ A4”) .NumberFormat =“ dd-mmm-yyy”'这会将日期更改为“ 23-Oct-2019” Range(“ A5”)。NumberFormat =“ dd-mmmm-yyy”'这会将日期更改为“ 23-Oct-yyy” 2019年10月“ Range(” A6“)。NumberFormat =” dd-mm-yy“'这会将日期更改为” 23-10-19“ Range(” A7“)。NumberFormat =” ddd mmm yyyy“'此将日期更改为“ Wed Oct 2019” Range(“ A8”)。NumberFormat =“ dddd mmmm yyyy”'将日期更改为“ Wednesday October 2019” End Sub 

该代码的结果如下。

输出:

使用FORMAT函数更改日期格式

在VBA中,我们有一个称为FORMAT的函数,可用于将所需的格式应用于单元格。

我们只需要指定“ Expression”的值,然后相应地应用“ Format”即可。

查看下面的代码作为示例。

代码:

 Sub Date_Format_Example3()将MyVal变体为MyVal = 43586 MsgBox Format(MyVal,“ DD-MM-YYYY”)结束Sub 

在上面的代码中,我已将变量定义为variant(可以保存任何值)。

代码:

 Dim MyVal作为变体 

接下来,对于此变量,我将值分配为43586。

代码:

MyVal = 43586

接下来,在消息框中,我显示了变量的结果,但是在显示结果之前,我们使用了“格式“格式化变量值的功能”MyVal”,给出的格式为“DD-MM-YYYY”.

代码:

MsgBox格式(MyVal,“ DD-MM-YYY”)

好的,让我们运行代码,并在VBA的消息框中查看结果。

输出:

如您所见,结果显示为“01-05-2019”.

现在,您一定想知道我们是否提供了序列号,但结果显示为日期。这是因为Excel将日期存储为序列号,因此值43586等于日期“ 01-05-2019”,并且如果将数字增加1即43587,则日期将为“ 02-05-2019”。

代码:

 Sub Date_Format_Example3()Dim MyVal作为变体MyVal = 43586 MsgBox Format(MyVal,“ DD-MM-YYY”)结束 

要记住的事情

  • 系统的默认日期也将应用于您的excel。
  • 数字格式属性可用于更改VBA中的日期格式。
  • 使用FORMAT函数,我们可以更改日期格式。
  • Excel将日期存储为序列号,如果您应用日期格式,它将相应显示。