Bạn tham khảo...Mình có 1 nhóm công tác, được chia theo từng mục, và muốn đánh số thứ tự tự động theo ngày tháng của cột D, kết quả là cột E như trong file đính kèm.
Mình Nhờ các bạn giúp đỡ và xin cám ơn.
Sub DanhSTTTheoCongTac()
Dim fDat As Date, lDat As Date, W As Integer, SoNgay As Integer, J As Long, STT As Integer
Dim WF As Object, Rng As Range, Rg0 As Range, sRng As Range, Cls As Range
Dim CgV As String, MyAdd As String
Set Rng = Range([C3], [C9999].End(xlUp))
Set WF = Application.WorksheetFunction
For W = 1 To 3
CgV = Switch(W = 1, "TN", W = 2, "HRAO", W = 3, "NQL")
Set sRng = Rng.Find(CgV, , xlFormulas, xlWhole)
If Not sRng Is Nothing Then
MyAdd = sRng.Address
Do
If sRng.Offset(, 1).Value <> "" Then
If Rg0 Is Nothing Then
Set Rg0 = sRng.Offset(, 1)
Else
Set Rg0 = Union(Rg0, sRng.Offset(, 1))
End If
End If
Set sRng = Rng.FindNext(sRng)
Loop While Not sRng Is Nothing And sRng.Address <> MyAdd
fDat = WF.Min(Rg0): lDat = WF.Max(Rg0)
SoNgay = lDat - fDat + 1: STT = 0
For J = 0 To SoNgay
For Each Cls In Rg0
If Format(Cls.Value, "MM/DD/yyyy") = Format(J + fDat, "mm/dd/yyyy") Then
STT = STT + 1
Cls.Offset(, 2).Value = CgV & Right("0" & CStr(STT), 2)
End If
Next Cls
Next J
Set Rg0 = Nothing
End If
Next W
End Sub
Cám ơn bạn đã giúp, cho mình hỏi đoạn này nếu mình có thêm nhiều hạng mục khác và tên của nó ko còn giống như TN, HRAO ... nữa thì sao ?CgV = Switch(W = 1, "TN", W = 2, "HRAO", W = 3, "NQL")
Sub GPE()
' . . . . . . . '
For W = 1 To 35
CgV = Switch(W = 1, "TN", W = 2, "HRAO", W = 3, "NQL", W = 4, "GPE4", W = 5, "GPE5", W = 6, "GPE6" _
, W = 7, "GPE7", , W = 14, "GPE14", W = 15, "GPE15", W = 16, "GPE16", W = 24, "GPE24", W = 25, "GPE25", W = 26, "GPE26")
' . . . . . . . '
Next W
End Sub