【问题标题】:Input month as an integer, output the final day of that month输入月份为整数,输出该月的最后一天
【发布时间】:2015-03-19 17:41:32
【问题描述】:

我正在尝试编写一个 Excel VBA 函数,当仅将月份数字作为整数给出时,该函数以 yyyy-mm-dd 的格式输出一个月中的最后一天。

所以对于一月份,1 将被输入,而输出将是 2014-01-31

我知道如何使用 Format(date(), "yyyy-mm-dd") 重新格式化日期,并认为我可以使用 DateSerial 计算最后一天,但我不确定如何将整数月份输入到 DateSerial 函数中.

最好的方法是什么?

【问题讨论】:

  • 您是否尝试过使用 DATE 功能?
  • 这一年会一直是前一年吗?总是2014?还是有其他决定年份的规则?
  • 至于如何在 DateSerial 函数中输入整数月份,您只需将该参数替换为 1 到 12 之间的整数(包括 1 到 12),就像其他任何VBA 函数。我不明白你在这一点上的困惑。

标签: vba excel date excel-formula


【解决方案1】:

试试:

函数:=TEXT(DATE(2014, A1 + 1, 1)-1,"yyyy-mm-dd")

VBA:DateSerial(Year, Month + 1, 1) - 1

这个函数求下个月的第一天,然后减去一天。

粘贴到除 A1 之外的任何单元格中,然后在 A1 中输入您的月份进行测试。

【讨论】:

    【解决方案2】:

    作为一个公式,使用您的格式,假设年份是 2014 年并且您的月份编号在 A1 中:

    =EOMONTH(41639,A1)
    

    【讨论】:

    • 这绝对是最好的选择。为什么要使用 VBA 创建 Excel 已有的公式?
    • 因为这是一个更大的 vba 应用程序的一部分
    猜你喜欢
    • 2018-05-28
    • 1970-01-01
    • 2019-03-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-10
    • 1970-01-01
    相关资源
    最近更新 更多