0

ユーザーがセル D1 に年 (「2013」など) を入力し、ボタンを押してマクロを起動できるようにしたいと考えています。このマクロは、これらのセルを実際の日付型に変換する関数をセル D2 ~ O2 (1 年の各月に 1 つのセル) に自動的に割り当てます。

たとえば、セル 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)

ありがとう

4

1 に答える 1

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)"
于 2012-12-17T18:55:33.270 に答える