Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


76584 / 76732 ←次へ | 前へ→

【4568】Re:お願い致します。
回答  ポンタ  - 03/3/27(木) 9:04 -

引用なし
パスワード
   >日曜・外注休み・月末(28or30or31)を自分で指定したときに

どんな方法で指定するか、が書いてないので
こちらで勝手に決めさせていただきました。

シートレイアウトを下記の表のようにしてください。

   A    B   C   D   E
1      1日 2日 3日 4日・・・・
2 営業日      ×
3 納期翌日
4 納期2日
5 納期3日
6  :
7  :

(営業日でない日には2行目に「×」をつける)

下記のコードを標準モジュールに貼り付け
このシートをアクティブにしてお試しください。

Sub test()
  Dim i As Integer, j As Long, k As Integer
  Dim MyRange As Range, MyFind As Range
  Application.ScreenUpdating = False
  Call Rows(3).Insert(xlShiftDown)
  Set MyRange = Range("C1", Range("IV1").End(xlToLeft)).Offset(2, 0)
  MyRange.FormulaR1C1 = _
    "=IF(R[-1]C[0]=""×"","""",MAX(R[0]C2:R[0]C[-1])+1)"
  k = 3
  For i = 2 To Range("IV1").End(xlToLeft).Column
    If Cells(2, i).Value <> "×" Then
      Cells(3, i).Value = k
      For j = 4 To Range("A65536").End(xlUp).Row
        Set MyFind = MyRange.Find(j, , xlValues, xlWhole, , xlPrevious)
        If Not MyFind Is Nothing Then
          Cells(j, i).Value = MyFind.Offset(-2, 0)
        End If
      Next
    End If
  Next
  Call Rows(3).Delete(xlShiftUp)
  Application.ScreenUpdating = True
End Sub
1 hits

【4554】お願い致します。 田中 03/3/26(水) 16:02 質問
【4568】Re:お願い致します。 ポンタ 03/3/27(木) 9:04 回答
【4625】Re:お願い致します。 田中 03/3/29(土) 12:13 お礼
【4629】Re:お願い致します。 ポンタ 03/3/30(日) 10:21 回答

76584 / 76732 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free