Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 尝试格式化日期以保存工作表_Vba_Excel_Date - Fatal编程技术网

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

Vba 尝试格式化日期以保存工作表,vba,excel,date,Vba,Excel,Date,我想从工作簿中保存一个单独的工作表,文件名中有今天的日期。例如(c:\HotDogS\sales\Daily\u 12\u 04\u 16.xslx) 我遇到的问题是如何在文件名中正确显示日期。 我有一个单元格,它的简单公式是=TODAY()。单元格的格式为mm/dd/yy 我尝试使用以下公式保存工作表的日期: =左(B3,2)和中(B3,4,2)和右(B3,2) 因此,我预计2016年4月12日将成为2016年4月12日,但我得到的是,42日08日08 有人能解释一下吗 谢谢 引用格式为日期的

我想从工作簿中保存一个单独的工作表,文件名中有今天的日期。例如(c:\HotDogS\sales\Daily\u 12\u 04\u 16.xslx)

我遇到的问题是如何在文件名中正确显示日期。 我有一个单元格,它的简单公式是
=TODAY()
。单元格的格式为mm/dd/yy

我尝试使用以下公式保存工作表的日期:
=左(B3,2)和中(B3,4,2)和右(B3,2)

因此,我预计2016年4月12日将成为2016年4月12日,但我得到的是,42日08日08

有人能解释一下吗


谢谢

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

若要按所需格式获取日期,请使用

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

假设今天<代码>为2016年12月4日,即序列号42708,则公式为:

=left(B3,2)&"_"&mid(B3,4,2)&"_"&right(B3,2)
左(B3,2)
42
Mid(B3,4,2)
is
08
<代码>右侧(B3,2)为
08

因此,您的最终结果是
42\u 08\u 08

您可能希望使用(作为Excel公式):

或者在VBA中,您可以使用

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

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

  • 1900年1月1日是第一天
  • 1900年1月31日是第31天
  • 1900年2月1日是第32天
  • 1900年2月29日(尽管它不存在——但为了向后兼容而保留了该bug)是第60天
  • 1901年1月1日是第367天
  • 2016年12月4日是第42708天
  • 现在()是第42709.328天(目前大约是2016年12月5日上午7:52)

如果您不介意另外一个问题,那么日期序列是如何计算的?
Format(Range("B3").Value, "mm_dd_yy")