標題:
[發問]
3段式輪班法
[打印本頁]
作者:
h60327
時間:
2012-8-13 15:57
標題:
3段式輪班法
[attach]12107[/attach][attach]12107[/attach]請教各位先進,有一輪值表分為3種輪值方式,輪值人員為B90-E128範圍,並依平日上班時段分為2班,平日下班時段1班,以及例假日2班,3種班表各自輪流服勤,假設7月1日(星期日)由A8開始輪值,7月2日上班日第1班由S1開始輪值,7月2日平常日下班時段由A1開始輪值,請問是否可用VBA取得每月之輪值表呢?麻煩各位先進了。
作者:
GBKEE
時間:
2012-8-14 08:06
回復
1#
h60327
試試看
[attach]12118[/attach]
作者:
c_c_lai
時間:
2012-8-14 08:34
回復
2#
GBKEE
排班 R, Range(R)
請教您第二個引入參數,為何使用 Range(R),其用意何在?
作者:
h60327
時間:
2012-8-14 09:18
不是很了解,但是透過定義名稱取得每一個班表的輪序是一個好構想,只是由於每一個月的星期排序並未固定,可否透過程序自動調整調整顯示呢?例如7月1日是星期日,8月1日是星期三等,再次感謝
作者:
GBKEE
時間:
2012-8-14 10:06
本帖最後由 GBKEE 於 2012-8-14 10:48 編輯
回復
3#
c_c_lai
]
Range(R),其用意何在?
R="平日" -> Range("平日")
定義"平日" 的範圍"A1:C10" => Range("A1:C10")
回復
4#
h60327
三個班表的輪序 都有註明輪序符號
每月制定排班表示都依每段班表最後符號開始, 應該不需理會每月的星期排序吧.
當輪序到底時,會回到第一個員工開始輪序
Private Sub 排班(R As Range, Rng As Range)
Dim X As Integer, xMatch As Integer, xRng As Range
X = Application.CountA(Rng)
If X = Rng.Count Then '已是最後排班員工
Rng.Clear
X = 0
End If
Rng.Cells(X + 1) = "◎"
Set xRng = Rng.Cells(X + 1).Offset(, -1)
xMatch = Application.Match(xRng.Text, Range("人員資料").Columns(3), 0)
R.Offset(, 1).Resize(, 3) = Range("人員資料").Rows(xMatch).Value
End Sub
複製代碼
作者:
keovin790916
時間:
2012-11-2 14:12
如何把代碼打到,裡面?
作者:
kkooo15
時間:
2012-11-13 13:38
回復
6#
keovin790916
巨集
請ALT+F11
就可以輸入公式了
作者:
user999
時間:
2012-11-14 11:25
很好用的程式,
只想再進一步試問
如果在排平日班時,排到特定人時,要固定在下午班
這又該如果修改(現實總有一些特殊人員)
謝謝!
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)