如何在Excel中用VBA格式化日期(4种方法)

  • Share This
Hugh West

实施 VBA宏 是在Excel中运行任何操作的最有效、最快速和最安全的方法。 在这篇文章中,我们将向你展示如何在Excel中使用格式化的日期 VBA .

下载工作手册

你可以从这里下载免费的练习Excel工作簿。

用VBA格式化日期.xlsm

用VBA在Excel中格式化日期的4种方法

请看下面的例子,我们在两份文件中都存储了相同的日期。 B栏 C 这样,当我们将日期格式化在 C列 ,你会知道从 B柱 在哪种格式的日期之前。

1.用VBA将Excel中的日期从一种类型格式化为另一种类型

首先让我们知道如何将日期格式化,从 细胞C5 在我们给定的数据集中,有 VBA 到" 1月20日星期二 ".

步骤。

  • 新闻 Alt + F11 在你的键盘上,或进入标签 开发人员 -> Visual Basic 打开 Visual Basic编辑器 .

  • 在弹出的代码窗口中,从菜单栏中,点击 插入 -> 模块 .

  • 复制以下代码并将其粘贴到代码窗口。
 Sub DateFormat() Range("C5").NumberFormat = "ddd-mmmm-yyyy" '这将把日期格式化为 "Tuesday-January-2022" End Sub 

你的代码现在可以运行了。

  • 新闻 F5 在你的键盘上选择"",或从菜单栏中选择 运行-> 运行Sub/UserForm 你也可以直接点击 小的播放图标 子菜单栏中的 "运行宏"。

这段代码将格式化日期" 11-01-22 "改为" 1月20日星期二 ".

你也可以将这种格式的日期转换成许多其他格式。 只要按照下面的代码将日期转换成你需要的格式。

 Sub FormatDate() 'Original Date is "11-01-22" Range("C5").NumberFormat = "dd-mm-yy" 'This will format the date to "11-01-2022" Range("C6").NumberFormat = "dd-mm-yy" 'This will format the date to "Tue-11-2022" Range("C7").NumberFormat = "dd-mmm-yy" 'This will format the date to "Tuesday-11-2022""11-Jan-2022" Range("C9").NumberFormat = "dd-mmmm-yyy" '这将把日期格式化为 "11-Jan-2022" Range("C10").NumberFormat = "dd-mm-yy" '这将把日期格式化为 "11-01-22" Range("C11").NumberFormat = "ddd mmm yyyy" '这将把日期格式化为 "2022年1月星期二"。 End Sub 

概述

阅读更多。 Excel VBA中的现在和格式函数

2.嵌入VBA,用FORMAT函数转换日期

如果你想知道任何的序列号,你就必须知道这些序列号。

具体日期,你必须申请 DATEVALUE函数 .

假设,你想知道日期""的序列号。 2022年1月11日 ",那么你需要把公式写成。

=DATEVALUE("2022年1月11日")

Excel会给你序列号 44572 的日期。

现在我们将把这个数字转换为其相关的日期格式。

步骤。

  • 与之前的方法一样,打开 Visual Basic编辑器 开发商 选项卡和 插入 a 模块 在代码窗口中。
  • 在代码窗口,复制以下代码并粘贴。
 Sub Format_Date() Dim iDate As Variant iDate = 44572 'Excel的日期序列号 "11 January 2022" MsgBox Format(iDate, "DD-MMM-YYY") End Sub 

你的代码现在可以运行了。

你会得到日期" 2022年1月11日 "在信息框中。

阅读全文:如何在Excel中使用VBA DateValue函数

类似读物

  • 如何在Excel中插入当前日期(3种方法)
  • VBA代码中的日期变量(宏的7种用途及示例)
  • 在VBA中获取当前日期(3种方法)
  • 如何使用Excel日期快捷键

3.用VBA在Excel中根据特定部分转换日期

假设你想对日期的某一部分进行格式化,例如,只对日/月/年进行格式化,那么请将代码写成。

 Sub Date_Format() Range("C5").NumberFormat = "mmmm" '这将把日期格式化为 "一月" End Sub 

你的代码现在可以运行了。

的"。 呒呒 这个代码中的""是指月名的长式。

由于该日期是" 2022年1月11日 ",所以这段代码将返回" 一月 ".

你可以实施这个代码来格式化和提取你想要的任何特定部分的日期。

 Sub FormatDateValue() '原始日期是 "11-01-22" Range("C5").NumberFormat = "dd" '这将把日期格式化为 "11" Range("C6").NumberFormat = "ddd" '这将把日期格式化为 "Tue" Range("C7").NumberFormat = "ddd" '这将把日期格式化为 "星期二" Range("C8").NumberFormat = "m" '这将把数据格式化为 "1" Range("C9") .NumberFormat = "mm" '这Range("C10").NumberFormat = "mm" '这将把日期格式化为 "Jan" Range("C11").NumberFormat = "yy" '这将把日期格式化为 "22" Range("C12").NumberFormat = "yyyy" '这将把日期格式化为 "2022" Range("C13").NumberFormat = "dd-mm" ' 这将把日期格式化为 "11-01" Range("C14").NumberFormat = "mm-yy" ' 这将把数据格式化成'这将把日期格式化为 "01-2022" Range("C15").NumberFormat = "mmm-yyy" '这将把日期格式化为 "Jan-2022" Range("C16").NumberFormat = "dd-yyy" '这将把日期格式化为 "11-22" Range("C17").NumberFormat = "dd yyyy" '这将把日期格式化为 "Tue 2022" Range("C18").NumberFormat = "ddd-yyy" ' 这将把数据格式化为 "星期二-2022" Range("C19") .这将把日期格式化为 "11-Jan" Range("C20").NumberFormat = "ddd-mmmm" '这将把日期格式化为 "星期二-1月" End Sub 

概述

4.在Excel中插入VBA来格式化特定工作表的日期

如果你想根据特定的工作表来格式化日期,那么首先你需要在代码中设置工作表名称,然后根据你要求的类型来格式化日期。

  • 开放式 Visual Basic编辑器 开发商 选项卡和 插入 a 模块 在代码窗口中。
  • 在代码窗口,复制以下代码并粘贴。
 Sub Format_Date() Dim iSheet As Worksheet Set iSheet = ThisWorkbook.Sheets("Example") '设置名为 "Example "的工作表 iSheet.Range("C5").NumberFormat = "ddd, mmmmdd, yyyy" End Sub 

你的代码现在可以运行了。

看看代码的第3行,首先我们设置" 例子 "的工作表,然后格式化那张Excel表的日期。

总结

这篇文章向你展示了如何在Excel中格式化日期与 VBA 我希望这篇文章对你非常有益。 如果你对这个主题有任何疑问,请随时提问。

Hugh West is a highly experienced Excel trainer and analyst with over 10 years of experience in the industry. He holds a Bachelor's degree in Accounting and Finance and a Master's degree in Business Administration. Hugh has a passion for teaching and has developed a unique teaching approach that is easy to follow and understand. His expert knowledge of Excel has helped thousands of students and professionals worldwide improve their skills and excel in their careers. Through his blog, Hugh shares his knowledge with the world, offering free Excel tutorials and online training to help individuals and businesses reach their full potential.