こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

連続データのVBAの質問

お世話になります。

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の連続データの数字が切り替わらない様にするには、どうすれば宜しいでしょうか?

投稿日時 - 2013-12-06 03:09:56

QNo.8375014

すぐに回答ほしいです

質問者が選んだベストアンサー

Private Sub Worksheet_Change(ByVal Target As Range)
if range("C1") <= date - day(date) then exit sub
のようにします。

投稿日時 - 2013-12-06 03:31:14

補足

ありがとうございます。

そこで補足事項なのですが、質問した現在は2013年12月ですが、日本時間の現在の年月以前の年月(今で言うと2013年11月以前)をC1に記入した場合はB9~B39の連続データの数字が自動で切り替わらずに、日本時間の現在の年月以前の年月がC1セルに表記されていて、手動で指定範囲のセルの数字を変更したら、数字が連続データで記入されるようにするにはどうすれば良いでしょうか?

投稿日時 - 2013-12-06 11:38:37

お礼

この度はお世話になりました、このようなVBAを記入するのですね。非常に参考になりました。
感謝申し上げます。

投稿日時 - 2013-12-06 18:32:37

ANo.1

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)