【问题标题】:Trying to format date to save worksheet尝试格式化日期以保存工作表
【发布时间】:2017-04-19 04:47:28
【问题描述】:

我希望从文件名中包含今天日期的工作簿中保存单个工作表。前任。 (c:\HotDogS\sales\Daily_12_04_16.xslx)

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

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

所以我预计 12/04/16 的日期会显示为 12_04_16,但我得到的是 42_08_08。

有人能解释一下吗?

谢谢!!

【问题讨论】:

    标签: vba excel date


    【解决方案1】:

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

    要获得您想要使用的日期格式

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

    【讨论】:

      【解决方案2】:

      假设 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 日是第一天
      • 1900 年 1 月 31 日是第 31 天
      • 1900 年 2 月 1 日是第 32 天
      • 1900 年 2 月 29 日(尽管它不存在 - 但为了向后兼容而维护了该错误)是第 60 天
      • 1901 年 1 月 1 日是第 367 天
      • 2016 年 12 月 4 日是第 42708 天
      • NOW() 是第 42709.328 天(目前大约是 2016 年 12 月 5 日上午 7:52)

      【讨论】:

      • 如果您不介意附加问题,日期序列是如何计算的?
      猜你喜欢
      • 1970-01-01
      • 2023-04-06
      • 1970-01-01
      • 2017-07-03
      • 2020-04-30
      • 1970-01-01
      • 2015-04-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多