本文目錄一覽:
- 1、考勤表上面代碼代表什麼意思
- 2、sql中使用兩個join後出現了每行記錄重複大約九次的情況
- 3、我想在EXCEL中以日曆形式做一個考勤表,怎麼做呢?
- 4、考勤表時間沒有打上指紋在異常考勤表裡怎麼填時間
- 5、如何在excel表中插入日曆表,我要製造考勤表 只要選擇對應月份,日期就自動生成了
- 6、你好,請問如何把考勤表中的異常時間顯示出來?
考勤表上面代碼代表什麼意思
在考勤表中,具體的符號分表代表的意思如下:
出勤(√)、曠工(X)、正休(◆)、事假◇、出差(▼)、換休(▽)、喪假(●)、產假(○)、病假(※)婚假(◎)
sql中使用兩個join後出現了每行記錄重複大約九次的情況
select 11月考勤表.name as 姓名,
員工表.card as 卡號,
11月考勤表.bmmc as 部門,
11月考勤表.skrq as 刷卡日期,
11月日曆.weeks as 星期,
11月考勤表.sksj as 刷卡時間
into monthdata
from 11月考勤表 inner join 11月日曆 on kqrq=skrq join 員工表 and 11月考勤表.no=員工表.no
where skrq between ‘2007-11-01’ and ‘2007-11-30’
在join 前加個inner
在只有join的情況下,被認為是full join ,也就是笛卡爾積了,所以會重複N多數據.
我想在EXCEL中以日曆形式做一個考勤表,怎麼做呢?
首先,要會先做個日曆……
然後再依人數,班段,數據量等因素設計顯示方式,最後套公式寫代碼什麼。
考勤表時間沒有打上指紋在異常考勤表裡怎麼填時間
Sub 簽到記錄()
Sheets(“簽到記錄”).Activate
Range(Cells(2, 1), Cells(100, 100)).Select
Selection.ClearContents
Dim m_s1, m_s2, m_s3, m_s4 As String
Dim m_arr1 ‘存放打卡記錄
Dim m_arr2 ‘存放日曆及休日標記
Dim m_arr3 ‘存放員工清單
‘Dim m_arr4(1 To 100, 1 To 31) As String ‘存放簽到記錄
Dim MAXROW1, MAXROW2, MAXROW3 As Integer
Dim i, j, k, l As Integer
Dim m_qdsj As String ‘臨時存放簽到時間
Dim m_dksj As String ‘臨時存放打卡時間
Dim m_xm, m_bm As String ‘存放員工姓名/部門
Dim m_rq As Date
Dim m_rq2 As String
Dim dkjl As String ‘存放打卡記錄
Dim sbsj As Date
Dim xbsj As Date
Dim bhZD ‘key-姓名 item-編號
Dim dkrqZD ‘key-編號+日期 item-序號
Dim dkrqArr(1 To 1000, 1 To 2) As Date ‘1-上班時間 2-下班時間
Dim dkrqJs As Integer
Dim xM As String, bH As Integer
Dim myDate As Date, myTime As Date
Dim myKey As String
Set bhZD = CreateObject(“scripting.dictionary”)
dkrqJs = 0
With Sheets(“員工基本信息”)
hh = 2
Do While .Cells(hh, 1) “”
xM = .Cells(hh, 1).Text
bH = .Cells(hh, 5).Value
bhZD.Add xM, bH
hh = hh + 1
Loop
End With
Set dkrqZD = CreateObject(“
如何在excel表中插入日曆表,我要製造考勤表 只要選擇對應月份,日期就自動生成了
1、首先在日期的第一個單元格里輸入=在點擊上面的考勤表日期,如圖。
2、然後第二個單元格里輸入=第一個單元格+1,按回車,再然後右下角向右拉。
3、再下面的星期單元格里輸入=上面的日期,如圖。
4、點擊回車,點擊右下角向右拉動,如圖。
5、選擇日期那一行點擊右鍵-設置單元格-日期,點擊確定,如圖(選擇自己合適的日期)。
6、星期那一行點擊右鍵-設置單元格-日期,點擊確定,如圖(選擇自己合適的日期)。
7、最後已在考勤表那一行的日期隨便輸入幾號,下面的日期跟星期就會隨之而變動了,如圖。
你好,請問如何把考勤表中的異常時間顯示出來?
這個都是要用vba編程來實現的。
下面介紹一個實際應用案例。
第一步:每月從考勤機讀取打卡數據導入excel表格。如圖:
第二步:維護本月工作日。如圖:
第三步:手動輸入請假記錄。如圖:
第四步:自動計算打卡結果。如圖:
第四步代碼如下:
Sub 簽到記錄()
Sheets(“簽到記錄”).Activate
Range(Cells(2, 1), Cells(100, 100)).Select
Selection.ClearContents
Dim m_s1, m_s2, m_s3, m_s4 As String
Dim m_arr1 ‘存放打卡記錄
Dim m_arr2 ‘存放日曆及休日標記
Dim m_arr3 ‘存放員工清單
‘Dim m_arr4(1 To 100, 1 To 31) As String ‘存放簽到記錄
Dim MAXROW1, MAXROW2, MAXROW3 As Integer
Dim i, j, k, l As Integer
Dim m_qdsj As String ‘臨時存放簽到時間
Dim m_dksj As String ‘臨時存放打卡時間
Dim m_xm, m_bm As String ‘存放員工姓名/部門
Dim m_rq As Date
Dim m_rq2 As String
Dim dkjl As String ‘存放打卡記錄
Dim sbsj As Date
Dim xbsj As Date
Dim bhZD ‘key-姓名 item-編號
Dim dkrqZD ‘key-編號+日期 item-序號
Dim dkrqArr(1 To 1000, 1 To 2) As Date ‘1-上班時間 2-下班時間
Dim dkrqJs As Integer
Dim xM As String, bH As Integer
Dim myDate As Date, myTime As Date
Dim myKey As String
Set bhZD = CreateObject(“scripting.dictionary”)
dkrqJs = 0
With Sheets(“員工基本信息”)
hh = 2
Do While .Cells(hh, 1) “”
xM = .Cells(hh, 1).Text
bH = .Cells(hh, 5).Value
bhZD.Add xM, bH
hh = hh + 1
Loop
End With
Set dkrqZD = CreateObject(“scripting.dictionary”)
With Sheets(“打卡記錄”)
dkrqZD.RemoveAll
hh = 2
Do While .Cells(hh, 1) “”
If hh = 13 Then
xxx = 1
End If
bH = .Cells(hh, 1).Value
myDate = .Cells(hh, 2).Value
myTime = .Cells(hh, 3).Value
myKey = “” bH “;” Day(myDate)
If Not dkrqZD.exists(myKey) Then
dkrqJs = dkrqJs + 1
dkrqZD.Add myKey, dkrqJs
dkrqArr(dkrqJs, 1) = myTime
dkrqArr(dkrqJs, 2) = myTime
Else
If myTime dkrqArr(dkrqZD(myKey), 1) Then
dkrqArr(dkrqZD(myKey), 1) = myTime ‘上班時間
End If
If myTime dkrqArr(dkrqZD(myKey), 2) Then ‘下班時間
dkrqArr(dkrqZD(myKey), 2) = myTime
End If
End If
hh = hh + 1
Loop
End With
m_s1 = “打卡記錄”
m_s2 = “本月工作日”
m_s3 = “簽到記錄”
m_s4 = “員工基本信息”
Sheets(m_s1).Select
MAXROW1 = Cells(Rows.Count, 1).End(xlUp).Row ‘找到A列最後一個有數據單元格的行號
m_arr1 = Range(“A2:c” MAXROW1) ‘把單元格區域裝入數組
Sheets(m_s2).Select
MAXROW2 = Cells(Rows.Count, 1).End(xlUp).Row ‘日曆數
m_arr2 = Range(“A2:c” MAXROW2) ‘把單元格區域裝入數組
Sheets(m_s4).Select
MAXROW3 = Cells(Rows.Count, 1).End(xlUp).Row ‘員工清單人數
m_arr3 = Range(“a2:d” MAXROW3) ‘把單元格區域裝入數組
‘計算簽到時間 取當天打卡最早的時間
Sheets(m_s3).Select
‘寫入表頭信息:第一行:日期 第二行:上班、下班
For i = 1 To MAXROW2 – 1
j = (i – 1) * 2 + 3
Cells(1, j) = m_arr2(i, 1)
Cells(1, j + 1) = myweek(m_arr2(i, 1))
Cells(2, j) = “上班”
Cells(2, j + 1) = “下班”
Next i
j = 3
For i = 1 To MAXROW3 – 1
If m_arr3(i, 4) = 0 Then
GoTo 100
End If
m_xm = m_arr3(i, 1)
m_bm = m_arr3(i, 2)
Cells(j, 1) = m_xm
Cells(j, 2) = m_bm
For k = 1 To MAXROW2 – 1
If m_arr2(k, 3) = “Y” Then ‘休息日不看打卡記錄
GoTo 200
End If
k2 = 3 + (k – 1) * 2
m_rq = m_arr2(k, 1)
m_bj = 0
bH = bhZD(m_xm)
myKey = “” bH “;” Day(m_rq)
If dkrqZD.exists(myKey) Then
m_bj = 1
sbsj = dkrqArr(dkrqZD(myKey), 1)
xbsj = dkrqArr(dkrqZD(myKey), 2)
Else
m_bj = 0
End If
If m_bj = 0 Then
Cells(j, k2) = “未打”
Cells(j, k2 + 1) = “未打”
Else
If sbsj = TimeSerial(8, 35, 0) Then
Cells(j, k2) = “OK”
Else
Cells(j, k2) = “遲到”
End If
If xbsj = TimeSerial(17, 30, 0) Then
Cells(j, k2 + 1) = “OK”
Else
Cells(j, k2 + 1) = “早退”
End If
End If
200 Next k
j = j + 1
100 Next i
Sheets(m_s3).Select
End Sub
Function myweek(a)
Dim b As Integer
b = Weekday(a, 2)
Select Case b
Case 1
myweek = “一”
Case 2
myweek = “二”
Case 3
myweek = “三”
Case 4
myweek = “四”
Case 5
myweek = “五”
Case 6
myweek = “六”
Case 7
myweek = “日”
End Select
End Function
Sub 一鍵更新()
請假處理
外出處理
出差處理
調休處理
End Sub
原創文章,作者:NAYK,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/145020.html