お世話になります。
Private Sub Worksheet_Change(ByVal Target As Range)
Dim i As Long, k As Long, myNum As Long
If Not Intersect(Target, Range("C1,B9:B39")) Is Nothing And Target.Count = 1 Then
Application.EnableEvents = False
With Target
If .Column = 3 Then
myNum = WorksheetFunction.Max(Range("B9:B39"))
If IsDate(.Value) Then
For i = 9 To 39
If Cells(i, "A").Value = "" Then
Cells(i, "B").Value = ""
Else
Cells(i, "B") = myNum + i - 8
End If
Next i
End If
Else
i = .Row
If .Value = "" Then
Range(Cells(i + 1, "B"), Cells(39, "B")).ClearContents
Else
For k = i + 1 To 39
If Cells(k, "A").Value = "" Then
Cells(k, "B").Value = ""
Else
Cells(k, "B") = Cells(k - 1, "B") + 1
End If
Next k
End If
End If
End With
Application.EnableEvents = True
ElseIf Not Intersect(Target, Range("R8:R38")) Is Nothing Then
Application.EnableEvents = False
Range(Cells(Target.Row, 18), Cells(39, 18)).Value = Target.Value
Application.EnableEvents = True
End If
End Sub
これはセルC1に年月を表記させ、そのC1セルの年月を変更した場合B9~B39のセルが自動で連続データの数字を記入し、B9~B39のどこかのセルを空白にすると、そのセル以降も空白になります。
そしてR8~R38は、指定範囲のセルに数字を入力したら、そのセル以降の指定した範囲のセルに同じ数字を自動入力するVBAです。
そこで質問ですが、質問した現在は2013年12月ですが、日本時間の現在の年月以前の年月(今で言うと2013年11月以前)をC1に記入した場合はB9~B39の連続データの数字が切り替わらない様にするには、どうすれば宜しいでしょうか?
お礼
この度はお世話になりました、このようなVBAを記入するのですね。非常に参考になりました。 感謝申し上げます。
補足
ありがとうございます。 そこで補足事項なのですが、質問した現在は2013年12月ですが、日本時間の現在の年月以前の年月(今で言うと2013年11月以前)をC1に記入した場合はB9~B39の連続データの数字が自動で切り替わらずに、日本時間の現在の年月以前の年月がC1セルに表記されていて、手動で指定範囲のセルの数字を変更したら、数字が連続データで記入されるようにするにはどうすれば良いでしょうか?