|
▼UO3 さん:
すいません。確認です。
どこに追加すればよろしいでしょうか?
>
>こんにちは
>
>アップされたコード、各種変数がそれぞれ14、そこへの値のセットも14行、処理も14・・
>というところが気になりましたので、変数を配列にして、変数定義も1行、値のセットも1行
>処理もループでコンパクトに・・・・
>
>ということでコードを書き始めたんですが、考え直しました。
>コードはコンパクトになったとしても、そのためのバグつぶしに時間がかかるかもしれませんし
>今後の、そちらでの運用過程で追加改訂なども考えられ、その時に、nonokaさんが理解して
>コード対応を行わなければいけないですよね。
>
>なので、とりあえず・・・というか・・・最終的に。
>
>以下のプロシジャを追加してください。
>
>Function GetWorkDate(ByVal dt As Date) As Date
> Dim a As Variant
> With Sheets("holiday")
> Do
> a = Application.Match(CDbl(dt), .Range("B4", .Range("B" & .Rows.Count).End(xlUp)), 0)
> If Not IsNumeric(a) Then Exit Do
> dt = dt + 1
> Loop
> End With
> GetWorkDate = dt
>End Function
>
>で、現在、N列〜AA列に日付をセットしておられるところ、たとえば
>
> .Range("N1").Value = .Range("K1").Value + Val(s(1))
>
>ここを
>
> .Range("N1").Value = GetWorkDate(.Range("K1").Value + Val(s(1)))
>
>こんなふうに変更してみてください。
>セットしようとしている日付が休日リストにあった場合、翌日、翌々日。。。と
>一番近い営業日にかえてセットします。
|
|