08/06/12 18:00:46
>91
70,71,73,90です。最初(69番の書き込み)から90日後云々が消えちゃいましたが・・・
それから3営業日「前」の日付を求めたい、とあったのが今度は3営業日「後」の日付を
求めるんですか?
では、A列にカレンダー(1月1日~12月31日)、B列に何かデータがあれば休みという前提で、
C1セルに日付を入力したら3営業日「後」の日付を求めるということで考えてみます。
C1セルの日付がカレンダーの何行目になるのかは、
Cells("C1").Value - Cells("A1").Value + 1 で求められます。A1セルを1/1としてます。
単純に3日後であれば3行下のA列の値でいいんですが、B列に何かあったらさらに1行下となるので、
ループを利用します。
Dim Tate As Long, i As Long
Sub D_day()
Tate = DateDiff("d", Cells(1, 1).Value, Cells(1, 3).Value) + 1
i = 0
Do
Tate = Tate + 1
If Cells(Tate, 2).Value = "" Then 営業日だけ
i = i + 1 カウントアップ
End If
Loop Until (i > 2) 3営業日になったらループ脱出
Cells(1, 4).Value = Cells(Tate, 1).Value
End Sub
これでどうでしょうか?