返回列表 上一主題 發帖

[發問] EXCEL課程表結合行事曆呈現方式請求協助

回復 1# 520iopiop


   
附件貼不上論壇,用私人空間擺放!!
將檔案放在壓縮檔可上傳
試試看
  1. Option Explicit
  2. Sub Ex()
  3.     Dim Sh(1 To 2) As Worksheet, Rng(1 To 3) As Range, CRng(1 To 2) As Range
  4.     Dim i As Integer, R As Integer, C As Integer
  5.     Set Sh(1) = Sheets("Sheet1")                                    '資料表
  6.     Set Sh(2) = Sheets("Sheet2")                                    '呈現表
  7.     Set Rng(1) = Sh(1).Range("i3:j3")                               '課程起日~課程迄日
  8.     Set Rng(2) = Sh(2).Range("c4")                                  '排程開始日期
  9.    
  10.     Set CRng(1) = Sh(1).Range("M2:S2")                              '上課星期
  11.     Set CRng(2) = Sh(2).Range("b5", Sh(2).Range("b5").End(xlDown))  '上課時間
  12.    
  13.     Rng(2).Offset(1).Resize(CRng(2).Rows.Count, 7) = ""             '清除呈現表
  14.    
  15.     Do While Rng(1).Cells(1) <> ""                                  '課程起日<>""
  16.         i = 0   '排程開始日期的欄位
  17.         Do While Rng(2).Offset(, i) >= Rng(1).Cells(1) And Rng(2).Offset(, i) <= Rng(1).Cells(2)
  18.             '迴圈的條件:呈現表的日期是[課程起日~課程迄日]的期間
  19.             C = CRng(1).Cells(Application.Match(Format(Rng(2).Offset(, i), "AAAA"), CRng(1), 0)).Column
  20.             'C = 資料表的上課星期中搜尋,排程日期的星期欄數
  21.             Set Rng(3) = Sh(1).Cells(Rng(1).Row, C)    '資料表的上課的時間區段
  22.             If Rng(3) <> "" Then
  23.                 R = Application.Match(Rng(3), CRng(2), 1)
  24.                 'R=列數:呈現表的上課的時間中所對應的,資料表的上課的時間
  25.                 Rng(2).Offset(R, i) = IIf(Rng(2).Offset(R, i) = "", Sh(1).Cells(Rng(1).Row, "B"), Rng(2).Offset(R, i) & vbLf & Sh(1).Cells(Rng(1).Row, "B"))
  26.                 '排程開始日期(R列, i欄)
  27.                 'Sh(1).Cells(Rng(1).Row, "B") =>資料表的學員編號
  28.             End If
  29.            i = i + 1  'Rng(2).Offset(, i)->排程開始日期的欄位,向右移動一欄
  30.         Loop
  31.         Set Rng(1) = Rng(1).Offset(1) '課程起日,向下移動一列
  32.     Loop
  33.     CRng(2).EntireRow.AutoFit
  34. End Sub
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

        靜思自在 : 做好事不能少我一人,做壞事不能多我一人。
返回列表 上一主題