- 帖子
- 967
- 主題
- 0
- 精華
- 0
- 積分
- 1001
- 點名
- 0
- 作業系統
- WIN XP
- 軟體版本
- OFFICE 2003
- 閱讀權限
- 50
- 性別
- 男
- 來自
- 台北
- 註冊時間
- 2010-11-29
- 最後登錄
- 2022-5-17
 
|
5#
發表於 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 |
-
-
排班表.rar
(30.16 KB)
|