Dạ đúng rồi anh. Mong thư anh rất nhiều.Bạn kiểm số ngày làm việc của từng SF theo bảng sau:
Mã SF Tên máy Ngày LV m1gvs 23m2gvs 16m1nk 18 m2nk 2m3rut 5m4uot 17
Chờ tin từ bạn!
Sub TinhSoNgayLamViecTrongThang()
Dim Sh As Worksheet, Rng As Range, sRng As Range, Cls As Range
Dim fDat As Date, SoNgay As Integer, lDat As Date, J As Integer, NgayLV As Integer
Dim MyAdd As String
Set Sh = ThisWorkbook.Worksheets("Data"): Rws = Sh.[A2].CurrentRegion.Rows.Count
Set Rng = Sh.[A3].Resize(Rws): Sheets("TK Ngay").Select
fDat = DateSerial(Year(Sh.[A3].Value), Month(Sh.[A3].Value), 1)
lDat = DateSerial(Year(Sh.[A3].Value), 1 + Month(Sh.[A3].Value), 0)
SoNgay = lDat - fDat + 1: Rng.NumberFormat = "MM/DD/yyyy"
For Each Cls In Range([B8], [B8].End(xlDown)) 'Duyêt Theo Mã Hàng '
For J = 1 To SoNgay 'Duyêt Theo Các Ngày Trong Tháng '
Set sRng = Rng.Find(Format(J + fDat, "MM/DD/yyyy"), , xlValues, xlWhole)
If Not sRng Is Nothing Then
MyAdd = sRng.Address
Do
If sRng.Offset(, 1).Value = Cls.Value Then
NgayLV = NgayLV + 1: Exit Do
End If
Set sRng = Rng.FindNext(sRng)
Loop While Not sRng Is Nothing And sRng.Address <> MyAdd
Else
End If
Next J
Cells(Cls.Row, "AO").Value = NgayLV: NgayLV = 0
Next Cls
End Sub
Em cảm ơn anh rất nhiều. Anh ơi em vừa thêm 1 ngày 26 ở sheet "Data" máy 1 (Đông) đáng lẽ số ngày làm việc sẽ nhẩy lên 24 chứ anh nhỉ, e thấy không nhẩy số, hay em chưa biết sửa. anh chỉ giúp em với, em cũng không biết sử dụng code anh.Đây là macro để tính ra các số liệu đó & có trong file:
PHP:Sub TinhSoNgayLamViecTrongThang() Dim Sh As Worksheet, Rng As Range, sRng As Range, Cls As Range Dim fDat As Date, SoNgay As Integer, lDat As Date, J As Integer, NgayLV As Integer Dim MyAdd As String Set Sh = ThisWorkbook.Worksheets("Data"): Rws = Sh.[A2].CurrentRegion.Rows.Count Set Rng = Sh.[A3].Resize(Rws): Sheets("TK Ngay").Select fDat = DateSerial(Year(Sh.[A3].Value), Month(Sh.[A3].Value), 1) lDat = DateSerial(Year(Sh.[A3].Value), 1 + Month(Sh.[A3].Value), 0) SoNgay = lDat - fDat + 1: Rng.NumberFormat = "MM/DD/yyyy" For Each Cls In Range([B8], [B8].End(xlDown)) 'Duyêt Theo Mã Hàng ' For J = 1 To SoNgay 'Duyêt Theo Các Ngày Trong Tháng ' Set sRng = Rng.Find(Format(J + fDat, "MM/DD/yyyy"), , xlValues, xlWhole) If Not sRng Is Nothing Then MyAdd = sRng.Address Do If sRng.Offset(, 1).Value = Cls.Value Then NgayLV = NgayLV + 1: Exit Do End If Set sRng = Rng.FindNext(sRng) Loop While Not sRng Is Nothing And sRng.Address <> MyAdd Else End If Next J Cells(Cls.Row, "AO").Value = NgayLV: NgayLV = 0 Next Cls End Sub
Mình bị cấm mở file của bạn, không biết vì sao?. . . . . . Anh ơi em vừa thêm 1 ngày 26 ở sheet "Data" máy 1 (Đông) đáng lẽ số ngày làm việc sẽ nhẩy lên 24 chứ anh nhỉ, e thấy không nhẩy số, hay em chưa biết sửa. anh chỉ giúp em với, em cũng không biết sử dụng code anh.
Còn thiếu cái cù nèo nữa thì phải; Ai có xin cho nốt dùm cái & tiện cảm ơn luôn thể!
Còn kiểu cỗ bài Tây hay bài Tam Cút cáu ghét.Còn thiếu cái cù nèo nữa thì phải; Ai có xin cho nốt dùm cái & tiện cảm ơn luôn thể!
![]()
![]()
![]()