syquyen1987
Thành viên hoạt động
- Tham gia
- 8/7/18
- Bài viết
- 193
- Được thích
- 43
Mình đang học thêm VBA, các bạn cho mình hỏi cách giải bài này với:
Những ô trùng nhau sẽ thêm thứ tự tăng dần từ 1 đến n, nếu ô không trùng nhau sẽ để nguyên trạng. Đây là code mình viết nhưng chạy chưa đạt yêu cầu. Nhờ mọi người chỉ giúp
Sub asss()
lr = Range("A" & Rows.Count).End(xlUp).Row
arr = Range("A2:A" & lr).Value
ReDim brr(1 To UBound(arr), 1 To 1)
Set dic = CreateObject("scripting.dictionary")
For i = 1 To UBound(arr)
dk = arr(i, 1)
If Not dic.exists(dk) Then
a = a + 1
dic.Add (dk), 1
brr(a, 1) = arr(i, 1)
Else
b = dic.Item(dk)
b = b + 1
a = a + 1
brr(a, 1) = arr(i, 1) & b
dic.Item(dk) = b
End If
Next i
Range("B2").Resize(a) = brr
End Sub
Nếu mà If Not dic.exists(dk) mà mình thêm brr(a, 1) = arr(i, 1) & 1 thì các ô không có dữ liệu trùng nhau thì sẽ không nguyên trạng nữa (vì kèm theo 1)
Những ô trùng nhau sẽ thêm thứ tự tăng dần từ 1 đến n, nếu ô không trùng nhau sẽ để nguyên trạng. Đây là code mình viết nhưng chạy chưa đạt yêu cầu. Nhờ mọi người chỉ giúp
Sub asss()
lr = Range("A" & Rows.Count).End(xlUp).Row
arr = Range("A2:A" & lr).Value
ReDim brr(1 To UBound(arr), 1 To 1)
Set dic = CreateObject("scripting.dictionary")
For i = 1 To UBound(arr)
dk = arr(i, 1)
If Not dic.exists(dk) Then
a = a + 1
dic.Add (dk), 1
brr(a, 1) = arr(i, 1)
Else
b = dic.Item(dk)
b = b + 1
a = a + 1
brr(a, 1) = arr(i, 1) & b
dic.Item(dk) = b
End If
Next i
Range("B2").Resize(a) = brr
End Sub
Nếu mà If Not dic.exists(dk) mà mình thêm brr(a, 1) = arr(i, 1) & 1 thì các ô không có dữ liệu trùng nhau thì sẽ không nguyên trạng nữa (vì kèm theo 1)