|
こんにちは。かみちゃん です。
> R1に月を入力するセルがあり、10を入れると10月のD15〜D20のデータがD4〜D9に転記され、11月を入れるとD5〜E20まで、12月はD15〜F20という風にしたいのです。
>以前教えていただいたシートモジュールで下記のように、記入してみましたが、転記がその月の分をD4:D9に転記するのみです。
>どこをどう変えたら複数月のデータを転記できるのでしょうか
以下のようにすればできると思います。
★の行の部分がポイントです。
Private Sub Worksheet_Change(ByVal Target As Range)
Dim V As Long
If Target.Count <> 1 Then Exit Sub
If Target.Address <> "$R$1" Then Exit Sub
'数値でない場合は処理しない
If IsNumeric(Target.Value) Then
'整数でかつ、1以上12以下の場合のみ処理する
If (Int(Target.Value) - Target.Value = 0) And (V >= 1 Or V <= 12) Then
V = Target.Value
If V <= 9 Then
V = V + 12
End If
With Range("D15:D20").Resize(, V - 9) '★
Application.EnableEvents = False
Range("D4:D9").Resize(, .Columns.Count).Value = .Value '★
Application.EnableEvents = True
MsgBox V & vbCrLf & .Address
End With '★
Else
MsgBox "入力値が誤っています"
End If
Else
MsgBox "入力値が誤っています"
End If
End Sub
|
|