根据一个单元格的值填充日期单元格?

时间:2012-12-17 18:49:00

标签: excel excel-vba vba

我希望用户能够在单元格D1中输入一年(例如“2013”​​)并按下一个触发宏的按钮。此宏将自动为单元格D2-O2(一年中每个月的一个单元格)分配一个函数,将这些单元格转换为实际日期类型。

例如,单元格D2的值为=DATE(2013, 1, 1),表示此单元格代表2013年1月1日。同样,单元格E2的值为=DATE(2013, 2, 1),F2的值为=DATE(2013, 3, 1),等

以下是我的伪代码,你能帮我把它转换成实际的VBA吗?

var myYear = the value of cell D1
cell D2 value is =DATE(2013,1,1)
cell E2 value is =DATE(2013,2,1)
cell F2 value is =DATE(2013,3,1)
cell G2 value is =DATE(2013,4,1)
cell H2 value is =DATE(2013,5,1)
cell I2 value is =DATE(2013,6,1)
cell J2 value is =DATE(2013,7,1)
cell K2 value is =DATE(2013,8,1)
cell L2 value is =DATE(2013,9,1)
cell M2 value is =DATE(2013,10,1)
cell N2 value is =DATE(2013,11,1)
cell O2 value is =DATE(2013,12,1)

由于

1 个答案:

答案 0 :(得分:1)

试试这个:

Sub FillYear()
    YearNum = Cells(1, 4)  ' Cell D1
    For MonthNum = 1 To 12
       Cells(2, MonthNum + 3).Value = DateSerial(YearNum, MonthNum, 1)
    Next
End Sub

<强>更新

如果您希望日期值为公式,那么如果用户更改年份日期会更改,请将For Loop内的行更改为:

Cells(2, MonthNum + 3).Formula = "=Date(R1C4," & MonthNum & ", 1)"