Board logo

標題: [發問] Excel排班表問題 [打印本頁]

作者: JOUE    時間: 2011-11-20 09:32     標題: Excel排班表問題

各位先進早:
              有一些問題想請教一下
                       本表小弟主要的概念為在輪值表上KEY上我所設的代號
                       人員即會對應到班表上,我主要是以IF函數去完成。
                      問題一:是否有其他方法可以替代,怕人員一多IF函數無法負荷
                      問題二:總共要做31天,小弟第一天公式設好後,複製到後面的活頁上
                                    才發現跨活頁公式貼上,抓到的跟前面的一樣,小弟目前只會用手動修改
                                    不知是否有更簡易的方式•
                      以上兩點懇請新進幫個忙!!非常感謝!!
作者: register313    時間: 2011-11-20 14:31

請再說明清楚
早正 早P 中P HPT        晚正 晚P HPT  如何區分
各職掌之代碼為何
作者: JOUE    時間: 2011-11-21 10:16

真抱歉資料沒說清楚
1.代碼: 1=櫃台  2=樓層  7=廚房  4=領台
2.輪值表第一部分為早班 第二部分中班 第三部分晚班  不用分正兼職
   只需分班段呈現即可。
再麻煩先進了!!非常感謝!!
作者: brabus    時間: 2011-11-21 20:23

這樣的資料似乎不夠完整
排班的依據好像要說清楚吧
作者: register313    時間: 2011-11-21 22:48

本帖最後由 register313 於 2011-11-21 22:50 編輯

1.VBA初學者,請各位大大指正
2.11月員工 工作表結構太亂 建議改嚴謹一些

Public A, D, R, S1, S2, S3, S4

Sub 排班()

  For D = 1 To 31
    Sheets(D + 1).Select
    Range("B7:K27").Select
    Selection.ClearContents
   
    '早班
    S1 = 7
    S2 = 9
    S3 = 11
    S4 = 14
    For A = 7 To 15
      R = 2
      Call 排班1
    Next A
   
    '中班
    S1 = 7
    S2 = 9
    S3 = 11
    S4 = 14
    For A = 23 To 28
      R = 3
      Call 排班1
    Next A
   
    '晚班
    S1 = 7
    S2 = 9
    S3 = 11
    S4 = 14
    For A = 33 To 41
      R = 4
      Call 排班1
    Next A
  Next D
  
End Sub

Sub 排班1()
   
    執掌 = Sheets(1).Cells(A, D + 5)
    Select Case 執掌
    Case "4"
          Sheets(D + 1).Cells(S1, R) = Sheets(1).Cells(A, 4)
          S1 = S1 + 1
    Case "7"
          Sheets(D + 1).Cells(S2, R) = Sheets(1).Cells(A, 4)
          S2 = S2 + 1
    Case "1"
          Sheets(D + 1).Cells(S3, R) = Sheets(1).Cells(A, 4)
          S3 = S3 + 1
    Case "2"
          Sheets(D + 1).Cells(S4, R) = Sheets(1).Cells(A, 4)
          S4 = S4 + 1
    Case Else
    End Select
   
End Sub
作者: JOUE    時間: 2011-11-22 09:14

很感謝新進的回答,雖然小弟看不懂VBA
我會再努力的,謝謝!!




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)