【发布时间】:2025-12-23 09:15:12
【问题描述】:
我需要帮助将其编码为 Excel-VBA 中的函数。老实说,我不认为我是否能够清楚地解释这一点,但是就这样吧。
我有一个日期范围,可以是同一年内的任何日期
示例日期范围: 日期 A = 01/15/2019 日期 B = 2019 年 12 月 10 日
我必须将日期拆分为它所涵盖的一年中每个季度的开始日期和结束日期。由于 DateA 在 Q1,第一个开始日期将是给定的 DateA,第一个结束日期将是 Q1(3 月 31 日)的结束。所以对于这个例子:
开始日期 1 = 01/15/2019 结束日期 1 = 03/31/2019
接下来,我现在必须获取从 Q2 到 DateB 的日期。
这是我到目前为止的开始。首先,我必须找到范围从哪个季度开始。
Select Case Month(startdate)
Case 1 to 3
'what to do
Case 3 to 6
'what to do
Case 7 to 9
'what to do
Case 10 to 12
'what to do
End Select
我还不知道如何编写后续步骤或如何从这里开始编写代码。
最终结果必须如下:
开始日期 1 = 01/15/2019
结束日期 1 = 03/31/2019开始日期 2 = 04/01/2019
结束日期 2 = 06/30/2019开始日期 3 = 07/01/2019
结束日期 3 = 09/30/2019开始日期 4 = 10/01/2019
结束日期 4 = 12/10/2019
【问题讨论】:
-
我假设结束日期 4 是 o 型,应该是 2019 年 12 月 31 日?
-
嗨!没有。预期结束日期仍应为给定日期范围内的 DateB,即使它在第 4 季度结束。涵盖的日期应仅为从 DateA 到 DateB。例如,DateB 可以是 08/01/2019(Q3)。在日期 A 到日期 B 之间,它仅涵盖 3 个季度。因此,结果将只是 Q1-Q3:开始日期 1 = 01/15/2019 ... ...开始日期 3 = 07/01/2019 结束日期 3 = 08/01/2019 ----没有后续----
-
哦,我明白了。嗯好的,我会修改我的答案。我会修改我的答案。
-
你能再举几个例子吗?如果是 Q1 并且开始日期是 4 月 4 日,你会怎么做?或者如果开始日期是前一年呢?
-
“如果是 Q1”你指的是 dateB 吗?如果 DateA 在 Q1 并且 DateB 也是 Q1,那么它只会返回一对日期。示例 1:A = 01/15/2019 \\Q1 B = 02/21/2019 \\Q1 开始日期 1 = A 结束日期 1 = B ------------------ - 示例 2 A = 07/20/2019 \\Q3 B = 10/06/2019 \\Q4 开始日期 1 = 07/20/2019 结束日期 1 = 10/06/2019