返回列表 上一主題 發帖

請教打卡統計問題

回復 1# tony0318

試試看
  1. Sub Ex()
  2.     Dim Ar(), a, i  As Integer
  3.     With Sheets("sheet1")
  4.         Ar = Application.Transpose(.Range("g2", .Range("g2").End(xlDown)))
  5.         .[f34] = UBound(Filter(Ar, .[e34], True)) + 1  
  6.         .[f35] = UBound(Filter(Ar, .[e35], True)) + 1
  7.         .[f36] = UBound(Filter(Ar, .[e36], True)) + 1
  8.         For Each a In Filter(Ar, .[e37], True)
  9.             i = i + Mid(a, InStr(a, "休") + 1, InStr(a, "分") - InStr(a, "休") - 1)
  10.         Next
  11.         .[f37] = i / 60
  12.     End With
  13. End Sub
複製代碼

TOP

回復 5# tony0318
你對程式不是很懂,可以練習看看
For Each a In Filter(Ar, .[e37], True)
            i = i + Mid(a, InStr(a, "休") + 1, InStr(a, "分") - InStr(a, "休") - 1)
Next
i=累計特休的分鐘  ,InStr(a, "休")=找出"休"位於字串的位置數  
F35和F36 要呈現的是分鐘的累計,而非次數,你試著改出來,不會很難的

TOP

回復 7# tony0318
你的早退的字串是怎樣寫的  再附檔看看

TOP

回復 7# tony0318
還有特休會變成480480, 你沒宣告變數為數字時   J , K 傳回子串+ 子串才如此
  1. Sub Ex()
  2.     Dim Ar(), a, i As Integer, k As Integer, j As Integer
  3.     With Sheets("sheet1")
  4.         Ar = Application.Transpose(.Range("g2", .Range("g2").End(xlDown)))
  5.         .[F34] = UBound(Filter(Ar, .[e34], True)) + 1
  6.         For Each a In Filter(Ar, .[e35], True)
  7.             i = i + Mid(a, InStr(a, "到") + 1, InStr(a, "分") - InStr(a, "到") - 1)
  8.         Next
  9.         .[f35] = i
  10.         For Each a In Filter(Ar, .[e37], True)
  11.             k = k + Mid(a, InStr(a, "休") + 1, InStr(a, "分") - InStr(a, "休") - 1)
  12.         Next
  13.         .[f37] = k / 60
  14.         For Each a In Filter(Ar, .[e36], True)
  15.             j = j + Mid(a, InStr(a, "退") + 1, Len(a) - InStrRev(a, "分") + 1)
  16.         Next
  17.         .[f36] = j
  18.     End With
  19. End Sub
複製代碼

TOP

回復 12# tony0318
With Sheets("sheet1")    指名 sheet1工作表
With ActiveSheet            作用中的工作表

TOP

回復 14# tony0318
是這樣嗎?
  1. Sub Ex()
  2.     Dim Ar(), a, i As Integer, k As Integer, j As Integer
  3.     Dim Sh As Worksheet
  4.     For Each Sh In Sheets   '工作表物件的集合 Sheets
  5.         With Sh         'Sheets("sheet1")
  6.             Ar = Application.Transpose(.Range("g2", .Range("g2").End(xlDown)))
  7.             .[F34] = UBound(Filter(Ar, .[e34], True)) + 1
  8.             For Each a In Filter(Ar, .[e35], True)
  9.                 i = i + Mid(a, InStr(a, "到") + 1, InStr(a, "分") - InStr(a, "到") - 1)
  10.             Next
  11.             .[f35] = i
  12.             For Each a In Filter(Ar, .[e37], True)
  13.                 k = k + Mid(a, InStr(a, "休") + 1, InStr(a, "分") - InStr(a, "休") - 1)
  14.             Next
  15.             .[f37] = k / 60
  16.             For Each a In Filter(Ar, .[e36], True)
  17.                 j = j + Mid(a, InStr(a, "退") + 1, Len(a) - InStrRev(a, "分") + 1)
  18.             Next
  19.             .[f36] = j
  20.         End With
  21.     Next
  22.     Set Sh = Nothing
  23. End Sub
複製代碼

TOP

回復 16# tony0318
沒有歸零  i = 0: k = 0: j = 0
  1. Sub Ex()
  2.     Dim Ar(), a, i As Integer, k As Integer, j As Integer
  3.     Dim Sh As Worksheet
  4.     For Each Sh In Sheets   '工作表物件的集合 Sheets
  5.         i = 0: k = 0: j = 0
  6.         With Sh         'Sheets("sheet1")
  7.             Ar = Application.Transpose(.Range("g2", .Range("g2").End(xlDown)))
  8.             .[F34] = UBound(Filter(Ar, .[e34], True)) + 1
  9.             For Each a In Filter(Ar, .[e35], True)
  10.                 i = i + Mid(a, InStr(a, "到") + 1, InStr(a, "分") - InStr(a, "到") - 1)
  11.             Next
  12.             .[f35] = i
  13.             For Each a In Filter(Ar, .[e37], True)
  14.                 k = k + Mid(a, InStr(a, "休") + 1, InStr(a, "分") - InStr(a, "休") - 1)
  15.             Next
  16.             .[f37] = k / 60
  17.             For Each a In Filter(Ar, .[e36], True)
  18.                 j = j + Mid(a, InStr(a, "退") + 1, Len(a) - InStrRev(a, "分") + 1)
  19.             Next
  20.             .[f36] = j
  21.         End With
  22.     Next
  23.     Set Sh = Nothing
  24. End Sub
複製代碼

TOP

        靜思自在 : 不要小看自己,因為人有無限的可能。
返回列表 上一主題