- 帖子
- 193
- 主題
- 29
- 精華
- 0
- 積分
- 222
- 點名
- 0
- 作業系統
- Windows7
- 軟體版本
- OFFICE2013
- 閱讀權限
- 20
- 註冊時間
- 2015-9-18
- 最後登錄
- 2023-4-29
|
43#
發表於 2016-8-17 04:17
| 只看該作者
回復 42# jeffrey628litw
感謝大大不辭辛勞的修改 !!!
今日持續測試功能是否有BUG , 發現 .. 假設有人員離職 , 但先前已經有在『出勤資料庫』資料庫出現的名字
會出現以下錯誤
然後回到『回報頁面』 看 會出現資料都向下位移 !!
如果去『出勤資料庫』將離職人員刪掉的話一樣不會恢復正常
除非要先將『回報頁面』的(紅框)資料先刪光, 在去按回報按鈕, 才恢復正常
請問這個如何修正呢?? 可以將離職後的人員資料同步在『出勤資料庫』刪掉? 就能避免這問題??
- Private Sub Main_回報寫入(Rng As Range)
- Dim R As Range, St As String, xRng As Range, 日數 As Integer, i As Integer
- For Each R In Rng.Rows
- ' ** R ->Sheets("出勤資料庫")的整列***********
-
- St = R.Cells(1, "A") & R.Cells(1, "B") & R.Cells(1, "D") & R.Cells(1, "E") & R.Cells(1, "F")
- 'St =出勤資料: 班別&所屬領班&&工號&姓名& 組別
-
- If 人員回報.EXISTS(St) Then '** St(出勤資料)存在字典物件中 -> 同一工號時
- Set xRng = 人員回報(St) '** -> 同一班別工號人員的位置
- Else '** St(出勤資料)不存在字典物件
-
- Set xRng = Sheets("人員回報").Range("a" & Rows.Count).End(xlUp).Offset(1)
- '** xRng 變數設為 Sheets("人員回報"),A欄最底部的列往上到有資料 儲存格的下一列
-
- Set 人員回報(St) = xRng '** 字典物件,工號: 設為xRng變數
- End If
- 日數 = Day(R.Range("C1"))
- With xRng
- ' ** xRng ->Sheets("人員回報").Range("a"列 )***********
- .Range("A1") = R.Range("A1") '** 班別
- .Range("B1") = R.Range("B1") '** 領班
- .Range("C1") = .Range("C1") + R.Range("k1") + IIf(R.Range("L1") = "True", R.Range("I1"), 0)
- '**R.Range("k1")->加班時數 ,R.Range("L1") = "TRUE"->假日:+加出勤時數-> R.Range("I1")
-
- .Range("D1") = R.Range("D1") '**工號
- .Range("E1") = R.Range("E1") '** 姓名
- .Range("F1") = DA工號(R.Range("D1") & "")(1, 7) '**主專長
- .Range("G1") = R.Range("F1") '** 組別
- .Cells(1, 日數 + 7) = R.Range("G1") '** 出勤站別
- ''*********************************************
- i = Application.Match(UCase(.Range("G1")), Array("V", "P", "K"), 0) '**歸納組別
- 組別表(i, 日數) = 組別表(i, 日數) + 1
-
- '***********************************
- If R.Range("J1") <> "" Then '**出勤資料庫 , 延長加班 資料 **
- i = Application.Match(UCase(R.Range("A1")), Ar1, 0)
- 站別表(i, 日數) = 站別表(i, 日數) + 1 '**Day(Rng(1)); 延長加班的加總
- End If
-
- i = Application.Match(UCase(R.Range("G1")), Ar1, 0) '**出勤資料庫 , 出勤站別 資料**
- 站別表(i, 日數) = 站別表(i, 日數) + 1
- '**DA 開機數 **
- If i = UBound(Ar1) + 1 Then 站別表(UBound(Ar1) + 2, 日數) = 站別表(UBound(Ar1) + 2, 日數) + R.Range("H1")
- '*********************************************
- End With
- Next
- End Sub
複製代碼 |
|