0

我目前正在使用 Office 2003 创建滚动预测。我有一个时间间隔(年/月到年/月)的起点和终点,我需要以特定的时间间隔自动填充(我只需要一个可以分配给按钮或类似东西的宏)。我不知道如何编写 vB 代码,而且我在尝试制定一种可以按照这些思路记录某些内容的方法时遇到了麻烦。所以,我可以使用一些帮助。

首先,我需要区间 201308-201412

每个月我都需要删除过去一个月(例如下个月间隔将变为 201309-201412)

一旦区间的起点变成 201404,区间的终点就会跳到 201512。

这个过程继续进行,过去一个月从间隔的开始被删除。

一旦 201504 成为间隔的开始,201612 将成为间隔的结束(过去一个月之前的 201512 被删除)。

此外,由于行将根据月份被删除/添加,有没有办法让行再次插入以避免重叠数据?(我也在使用 TM1,并且我有 DBRW 公式将与这些日期一起旅行 - 如果您熟悉 citrix/tm1)

让我知道我是否可以解释其他任何事情。

谢谢!

4

1 回答 1

0

我认为您在这里不需要宏。一些嵌套的内置函数会做。

起始间隔公式:

=TEXT(DATE(YEAR(TODAY()),MONTH(TODAY())+1,1),"yyyymm")

这基本上返回从今天开始的下个月格式为“yyyymm”的日期

结束区间公式:

=IF(MONTH(TODAY())>4,TEXT(DATE(YEAR(TODAY())+1,12,1),"yyyymm"),TEXT(DATE(YEAR(TODAY()),12,1),"yyyymm"))

这将检查今天的月份是否大于 4,如果是,则将结束间隔移动到明年的 12 月,否则将其保留为今年的 12 月。

这里使用了几个公式:

TEXT(value,format) - this returns a formatted text
DATE(YEAR,MONTH,DAY) - this returns a date
YEAR(date_serial) - this returns the year from a date serial
MONTH(date_serial) - this returns the month from a date serial
DAY(date_serial) - this returns the day from a date serial
IF(logic,true,false) - if statement in Excel
TODAY() - this returns today's date serial
于 2013-07-23T20:10:43.443 回答