1. Hiện tại Code của tôi thay vì đánh số thứ tự dựa trên xuất hiện giá trị cột " P" thì nó lại bị dựa trên "không có " giá trị cột " P"
Vậy tôi phải làm cách nào để sửa ?
2. Để số năm đứng sau số thứ tự : vidu 19.0002 thành 0002.19 thì làm cách nào ?
3. Tôi muốn đánh số thứ tự dựa trên khoảng thời gian cell B1: C1 ( tham chiếu tới cột Q của bảng" ) thì code sẽ phải thực hiện ntn ?
Mong các bác góp ý
Xin cảm ơn !
Vậy tôi phải làm cách nào để sửa ?
2. Để số năm đứng sau số thứ tự : vidu 19.0002 thành 0002.19 thì làm cách nào ?
3. Tôi muốn đánh số thứ tự dựa trên khoảng thời gian cell B1: C1 ( tham chiếu tới cột Q của bảng" ) thì code sẽ phải thực hiện ntn ?
Mong các bác góp ý
Xin cảm ơn !
Sub SoTT()
Dim sArr(), Res(), Dic As Object
Dim sRow&, i&, yy$, ct$, iKey$, ikey2$
Set Dic = CreateObject("scripting.dictionary")
With Sheets("sheet1")
sArr = .Range("B4:R" & .Range("P" & Rows.Count).End(xlUp).Row).Value
End With
sRow = UBound(sArr)
ReDim Res(1 To sRow, 1 To 1)
For i = 1 To sRow
Select Case sArr(i, 15)
Case " ", Empty: ct = "."
Case Else: ct = Empty
End Select
If ct <> Empty Then
yy = Right(Year(sArr(i, 3)), 2) & "."
iKey = ct & "#" & sArr(i, 1) & "#" & sArr(i, 2) & sArr(i, 3) & sArr(i, 5) & sArr(i, 6)
ikey2 = yy & "#" & ct
If Not Dic.Exists(iKey) Then
Dic.Add iKey, ""
Dic.Item(ikey2) = Dic.Item(ikey2) + 1
End If
Res(i, 1) = ct & yy & Format(Dic.Item(ikey2), "0000")
End If
Next i
Sheets("sheet1").Range("A4").Resize(sRow).Value = Res
End Sub
Bài đã được tự động gộp: