マクロ Date関数の使用中に・・・・
未来の日付を算出するなかで、起算日(C6セル)にyyyy/m/d以外の情報が入っている場合エラーがかかってしまいます。何故、yyyy/m/d以外の情報が入るかと申しますと、前段階のマクロ処理の中で選択範囲の中に『0 ゼロ』が含まれている場合、履歴無しと入力されてしまうからです。
この場合、前段階のマクロを修正した方が良いのでしょうか?それとも以下のマクロを修正するだけでOKなのでしょうか?御指導お願いします。
Sub シート単位で周期到達日を繰り返し算出する()
Dim c As Integer
c = 3
Do While Cells(2, c).Value <> ""
Cells(7, c) = DateAdd("yyyy", Cells(3, c), Cells(6, c))
Cells(7, c) = DateAdd("m", Cells(4, c), Cells(7, c))
Cells(7, c) = DateAdd("d", Cells(5, c), Cells(7, c))
c = c + 1
Loop
End Sub
一応、前段階のマクロ処理を記載しときます。
Sub 一覧以外の全シートの最終履歴を表示する()
Dim ws As Worksheet
For Each ws In Worksheets
If ws.Name <> "一覧" Then
Dim c As Integer
c = 3
Do While ws.Cells(2, c).Value <> ""
With ws.Cells(6, c)
.NumberFormatLocal = "G/標準"
.Value = Application.WorksheetFunction.Max(ws.Range(ws.Cells(8, c), ws.Cells(10000, c)))
.Replace What:="0", Replacement:="履歴無し", LookAt:=xlWhole
.NumberFormatLocal = "yyyy/m/d;@"
End With
c = c + 1
Loop
End If
Next
End Sub
お礼
ご回答ありがとうございます。 原因がわかりませんでしたが、文字列に変わってたんですね。 こんな方法があるとは、知りませんでした。 勉強になりました。