|
月のデータの範囲はルールがありそうなので、
そのルールでOffsetした範囲と考えていいのであれば、
シートのChangeイベントを利用して、
Private Sub Worksheet_Change(ByVal Target As Range)
Dim r As Range
Dim v As Variant
If Target.Count <> 1 Then Exit Sub
If Target.Address <> "$P$1" Then Exit Sub
v = Choose(Target.Value, 3, 4, 5, 6, 7, 8, 9, 10, 11, 0, 1, 2)
If Not IsNull(v) Then
With Me.Range("Q5:V19")
Set r = .Offset(, .Columns.Count * v)
End With
Application.EnableEvents = False
Me.Range("J5:O19").Value = r.Value
Application.EnableEvents = True
' MsgBox v & vbCrLf & r.Address
Else
MsgBox "入力値が誤ってます。"
End If
End Sub
でどうでしょう。
目的のシートのシートモジュールに記述します。
|
|