Đoán đạiCả nhà giúp em với ạ. Em muốn điền cho số chạy tự động tăng dần với những tên giống nhau thì sẽ trùng mã số nếu không trùng nhau thì sẽ tiếp tục tăng trùng sẽ lấy mã phía trước
Option Explicit
Sub abc()
Dim Nguon
Dim Kq, i, rws
Nguon = Sheet1.Range("C2", Sheet1.Range("C2").End(xlDown))
rws = UBound(Nguon)
ReDim Kq(1 To rws, 1 To 1)
With CreateObject("Scripting.Dictionary")
For i = 1 To rws
If .Exists(Nguon(i, 1)) = False Then .Item(Nguon(i, 1)) = .Count
Kq(i, 1) = .Item(Nguon(i, 1)) + 1
Next i
End With
With Sheet1
.Range("A2").Resize(rws, 1).ClearContents
.Range("A2").Resize(rws, 1) = Kq
End With
End Sub
Bạn xem lại nội quy và sửa lại tiêu đề đi nhéCả nhà giúp em với ạ. Em muốn điền cho số chạy tự động tăng dần với những tên giống nhau thì sẽ trùng mã số nếu không trùng nhau thì sẽ tiếp tục tăng trùng sẽ lấy mã phía trước
Cho em hỏi muốn gán mã VD: KA001 thay cho 1 thì như thế nào vậy ạĐoán đại
Mã:Option Explicit Sub abc() Dim Nguon Dim Kq, i, rws Nguon = Sheet1.Range("C2", Sheet1.Range("C2").End(xlDown)) rws = UBound(Nguon) ReDim Kq(1 To rws, 1 To 1) With CreateObject("Scripting.Dictionary") For i = 1 To rws If .Exists(Nguon(i, 1)) = False Then .Item(Nguon(i, 1)) = .Count Kq(i, 1) = .Item(Nguon(i, 1)) + 1 Next i End With With Sheet1 .Range("A2").Resize(rws, 1).ClearContents .Range("A2").Resize(rws, 1) = Kq End With End Sub
Bạn cho mình xin công thức với ạ VD?: mã là KA001Bạn xem lại nội quy và sửa lại tiêu đề đi nhé
Bài này dùng công thức cũng được
Bạn không sửa tiêu đề bài viết à?Cho em hỏi muốn gán mã VD: KA001 thay cho 1 thì như thế nào vậy ạ
Bài đã được tự động gộp:
Bạn cho mình xin công thức với ạ VD?: mã là KA001
Bạn có thể hướng dẫn mình sửa cho đúng được không ạCho em hỏi muốn gán mã VD: KA001 thay cho 1 thì như thế nào vậy ạ
Bài đã được tự động gộp:
Bạn cho mình xin công thức với ạ VD?: mã là KA001
Cho em hỏi muốn gán mã VD: KA001 thay cho 1 thì như thế nào vậy ạ
'If .Exists(Nguon(i, 1)) = False Then .Item(Nguon(i, 1)) = .Count
If .Exists(Nguon(i, 1)) = False Then .Item(Nguon(i, 1)) = "KA" & Right(.Count + 1000, 3)
Mình đã thay nhưng có vẻ nó không hoạt độngBạn tìm dòng trên, thay = dòng dưới.Mã:'If .Exists(Nguon(i, 1)) = False Then .Item(Nguon(i, 1)) = .Count If .Exists(Nguon(i, 1)) = False Then .Item(Nguon(i, 1)) = "KA" & Right(.Count + 1000, 3)
---
Bài này có lẽ gọi là "điền mã theo điều kiện" chắc không vấn đề gì
A2=IFERROR(INDEX($A$1:A1,MATCH(C2,$C$1:C1,0)),"KA"&TEXT(SUMPRODUCT(1/COUNTIF($A$1:A1,$A$1:A1)),"000"))Bạn cho mình xin công thức với ạ VD?: mã là KA001
Code trên sửa chưa hết, sửa lại thế này là chạy đượcMình đã thay nhưng có vẻ nó không hoạt động
Option Explicit
Sub abc()
Dim Nguon
Dim Kq, i, rws
Nguon = Sheet1.Range("C2", Sheet1.Range("C2").End(xlDown))
rws = UBound(Nguon)
ReDim Kq(1 To rws, 1 To 1)
With CreateObject("Scripting.Dictionary")
For i = 1 To rws
'If .Exists(Nguon(i, 1)) = False Then .Item(Nguon(i, 1)) = .Count
'Kq(i, 1) = .Item(Nguon(i, 1)) + 1
If .Exists(Nguon(i, 1)) = False Then .Item(Nguon(i, 1)) = "KA" & Right(.Count + 1 + 1000, 3)
Kq(i, 1) = .Item(Nguon(i, 1))
Next i
End With
With Sheet1
.Range("A2").Resize(rws, 1).ClearContents
.Range("A2").Resize(rws, 1) = Kq
End With
End Sub
Cảm ơn bạn nhé mình làm được rồi ạCode trên sửa chưa hết, sửa lại thế này là chạy được
Mã:Option Explicit Sub abc() Dim Nguon Dim Kq, i, rws Nguon = Sheet1.Range("C2", Sheet1.Range("C2").End(xlDown)) rws = UBound(Nguon) ReDim Kq(1 To rws, 1 To 1) With CreateObject("Scripting.Dictionary") For i = 1 To rws 'If .Exists(Nguon(i, 1)) = False Then .Item(Nguon(i, 1)) = .Count 'Kq(i, 1) = .Item(Nguon(i, 1)) + 1 If .Exists(Nguon(i, 1)) = False Then .Item(Nguon(i, 1)) = "KA" & Right(.Count + 1 + 1000, 3) Kq(i, 1) = .Item(Nguon(i, 1)) Next i End With With Sheet1 .Range("A2").Resize(rws, 1).ClearContents .Range("A2").Resize(rws, 1) = Kq End With End Sub