Table of contents
实施 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 我希望这篇文章对你非常有益。 如果你对这个主题有任何疑问,请随时提问。