|
こんばんは。
>次に月の書き出しについて一日考えていたのですが・・・
>
>sub test()
> dim rg as range
> dim rgall as range
>
> set rg=worksheets(2).range("A1")
> set rgall=worksheets(2).range("A1:F1")
'ここのFの代わりに月の数を反映させればよいですね!!
> rg.value=worksheets(1).range("A1")
> rg.autofill destination:=rgall,type:=xlfillmonths
> rgall.numberformatlocal="yyyy年mm月"
> set rg=nothing
> set rgall=nothing
>end sub
>
>これだと"F1"まで入力!、期限は1月まで!って指定しちゃってますよね・・・
>解けそうでなかなか解けません。
仮に
アクティブシートのセルA1に開始年月日(前回の例で言う2006/8/1)
セルB1に終了年月日(前回の例で言う2007/1/31)が入力されているとします。
月の書き出しはセルA2からB2、C2・・・作成することを
考えます。
標準モジュールに
'======================================================================
Sub test()
Dim mcnt As Long
mcnt = DateDiff("m", Range("a1").Value, Range("b1").Value) + 1
With Range("a2")
.Value = Range("a1").Value
If mcnt > 1 Then
.AutoFill _
Destination:=Range("A2", Cells(2, mcnt)), _
Type:=xlFillMonths
End If
.Resize(, mcnt).NumberFormatLocal = "yyyy""年""m""月"""
End With
End Sub
これでA1が2006/8/1 B1が2007/1/31だった場合、
A2〜F2の範囲に 2006年8月 2006年9月 ・・・2007年1月
と書き込みます。
試してみてください。
|
|