2013-07-23 164 views
0

我目前使用Office 2003創建滾動預測。我有一段時間間隔(年/月至年/月)的起點和終點,我需要按一定的時間間隔自動填充(我只需要一個可分配給按鈕或某種類型的宏的宏)。我不知道如何編寫vB,而且我很難制定一種方式來記錄這些內容。所以,我可以使用一些幫助。滾動日期宏

首先,我需要的間隔201308-201412

每個月

我需要過去的一個月降(例如下個月的間隔將成爲201309-201412)

一旦間隔的開始成爲201404,間隔的結束將跳轉到201512.

該過程繼續,其中過去一個月從間隔的開始處被丟棄。

一旦201504成爲間隔的開始,201612成爲間隔的結束(在過去一個月被丟棄之前已經是201512)。

此外,由於行會根據月份而被刪除/添加,是否有任何方法讓行再次插入以避免重疊數據? (我也使用TM1,並且我有DBRW公式,這些公式將與這些日期一起旅行 - 如果您熟悉citrix/tm1)

讓我知道我是否可以解釋其他任何事情。

謝謝!

回答

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