尝试格式化日期以保存工作表

时间:2016-12-04 20:30:50

标签: excel vba excel-vba date

我希望在文件名中保存今天工作簿中的单个工作表。恩。 (C:\热狗\ SALES \ Daily_12_04_16.xslx)

我遇到的问题是将日期显示在文件名中。 我有1个单元格,其公式为=TODAY()。单元格的格式为mm / dd / yy。

我试图用来保存工作表日期的公式是: =left(B3,2)&"_"&mid(B3,4,2)&"_"&right(B3,2)

所以我期待12月04日的日期为12_04_16,但我得到的是42_08_08。

有人可以对此有所了解吗?

谢谢!

2 个答案:

答案 0 :(得分:1)

引用格式化为日期的单元格将返回基础日期序列号。

要根据需要格式化日期

=TEXT(B3,"dd\_mm\_yy")

答案 1 :(得分:1)

假设TODAY是2016年12月4日,即序列号为42708,您的公式为:

=left(B3,2)&"_"&mid(B3,4,2)&"_"&right(B3,2)

Left(B3,2)42Mid(B3,4,2)08Right(B3,2)08

所以你的最终结果是42_08_08

您可能想要使用(作为Excel公式):

=TEXT(B3,"mm\_dd\_yy")

或者在VBA中你可以使用

Format(Range("B3").Value, "mm_dd_yy")

Excel将日期存储为自1900年1月0日以来的天数(以及一天的分数)。因此

  • 1900年1月1日是第1天
  • 1900年1月31日是第31天
  • 1900年2月1日是第32天
  • 1900年2月29日(即使它不存在 - 但为了向后兼容而保留了错误)是第60天
  • 1901年1月1日是第367天
  • 2016年12月4日是第42708天
  • 现在()是第42709.328天(现在是2016年12月5日上午7:52左右)