Sub 製作簽到表()
Dim a As Integer
a = Sheets("登錄(2)").Range("I9")
'MsgBox a
Sheets("list").Select
If Range("d2") = "" Then
R = 2
Else
R = Range("d1").End(xlDown).Row + 1
End If
For i = 13 To 27
For j = 1 To 7
If Sheets("登錄(2)").Cells(i, j) <> "" Then
Sheets("list").Range("d" & R) = Sheets("登錄(2)").Cells(i, j)
Sheets("list").Range("e" & R) = Sheets("登錄(2)").Range("b7")
Sheets("list").Range("f" & R) = Sheets("登錄(2)").Range("h7")
Sheets("list").Range("g" & R) = Sheets("登錄(2)").Range("d7")
Sheets("list").Range("h" & R) = Sheets("登錄(2)").Range("c7")
Sheets("list").Range("i" & R) = Sheets("登錄(2)").Range("g8")
Sheets("list").Range("j" & R) = Sheets("登錄(2)").Range("f10")
Sheets("list").Range("k" & R) = Sheets("登錄(2)").Range("e8")
Sheets("list").Range("l" & R) = Sheets("登錄(2)").Range("b8")
Sheets("list").Range("n" & R) = "合格"
If WorksheetFunction.CountIf(Sheets("人員名單").Range("a:a"), Range("d" & R)) > 0 Then '大於0表示有找到這名員工
Sheets("list").Range("b" & R) = WorksheetFunction.VLookup(Range("d" & R), Sheets("人員名單").Range("a:i"), 9, 0)
Sheets("list").Range("c" & R) = WorksheetFunction.VLookup(Range("d" & R), Sheets("人員名單").Range("a:i"), 2, 0)
Else
Sheets("list").Range("b" & R) = "缺"
Sheets("list").Range("c" & R) = "缺"
End If
Sheets("list").Range("a" & R) = Sheets("list").Range("c" & R) & Sheets("list").Range("e" & R) & Sheets("list").Range("l" & R)
If WorksheetFunction.CountIf(Sheets("list").Range("a:a"), Range("a" & R)) > 1 Then
Sheets("list").Range("p" & R) = "重複"
End If
R = R + 1
End If
Next
Next
Select Case a
Case Is > 50
Sheets("簽到記錄表 (3張)").Select
If Sheets("簽到記錄表 (3張)").Range("A11") <> "" Then
Sheets("簽到記錄表 (3張)").Range("A11:h48").ClearContents
End If
Range("b3") = Sheets("登錄(2)").Range("d7")
Range("b4") = Sheets("登錄(2)").Range("b8")
Range("h4") = Sheets("登錄(2)").Range("f9")
Range("b6") = Sheets("登錄(2)").Range("e8")
Range("b7") = Sheets("登錄(2)").Range("b9")
Range("a11:a24") = Sheets("登錄(2)").Range("k13:k26").Value
Range("h11:h24") = Sheets("登錄(2)").Range("k27:k40").Value
Range("a25:a38") = Sheets("登錄(2)").Range("k41:k54").Value
Range("h25:h38") = Sheets("登錄(2)").Range("k55:k68").Value
Range("a39:a48") = Sheets("登錄(2)").Range("k69:k78").Value
Range("h39:h48") = Sheets("登錄(2)").Range("k79:k88").Value
Case Is > 24
Sheets("簽到記錄表 (2張)").Select
If Sheets("簽到記錄表 (2張)").Range("A11") <> "" Then
Sheets("簽到記錄表 (2張)").Range("A11:h35").ClearContents
End If
Range("b3") = Sheets("登錄(2)").Range("d7")
Range("b4") = Sheets("登錄(2)").Range("b8")
Range("h4") = Sheets("登錄(2)").Range("f9")
Range("b6") = Sheets("登錄(2)").Range("e8")
Range("b7") = Sheets("登錄(2)").Range("b9")
Range("a11:a24") = Sheets("登錄(2)").Range("k13:k26").Value
Range("h11:h24") = Sheets("登錄(2)").Range("k27:k40").Value
Range("a25:a35") = Sheets("登錄(2)").Range("k41:k51").Value
Range("h25:h35") = Sheets("登錄(2)").Range("k52:k62").Value
Case Is >= 0
Sheets("簽到記錄表 (1張)").Select
If Sheets("簽到記錄表 (1張)").Range("A11") <> "" Then
Sheets("簽到記錄表 (1張)").Range("A11:h22").ClearContents
End If
Range("b3") = Sheets("登錄(2)").Range("d7")
Range("b4") = Sheets("登錄(2)").Range("b8")
Range("h4") = Sheets("登錄(2)").Range("f9")
Range("b6") = Sheets("登錄(2)").Range("e8")
Range("b7") = Sheets("登錄(2)").Range("b9")
Range("a11:a22") = Sheets("登錄(2)").Range("k13:k24").Value
Range("h11:h22") = Sheets("登錄(2)").Range("k25:k36").Value
End Select
End Sub
Sub test2()
Dim Arr, Brr(1 To 1000, 1 To 3), Crr()
Dim i&, j&, n%, s%, m%, R%
Arr = [n13].CurrentRegion '來源資料1
If Arr <> "" Then
For j = 1 To UBound(Arr, 2): For i = 1 To UBound(Arr)
If Arr(i, j) <> "" Then
If n < 7 Then n = n + 1 Else n = 1
s = s + 1: Brr(s, 1) = n
Brr(s, 2) = Arr(i, j): Brr(s, 3) = s
End If
Next i: Next j
[j13].Resize(s, 3) = Brr '轉貼到2
R = Int(s / 7) + 1: ReDim Crr(1 To R, 1 To 7): k = 1
For i = 1 To s
For j = 1 To 7
m = m + 1: If m > s Then GoTo 99
Crr(i, j) = Brr(m, 2)
Next
99: Next i
Range("a13").Resize(R, 7) = Crr '轉貼到3
Else
Range("a13").Resize(R, 7) = Crr '轉貼到3
End If
End Sub
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/) |