zerocoldtn
Thành viên hoạt động



- Tham gia
- 2/6/16
- Bài viết
- 148
- Được thích
- 7
Bạn thử code này xem.Mà mình thấy code kia cũng nhanh mà mất chưa đến 3s.File bên dưới thực hiện việc tách dữ liệu trong chuỗi, nhưng khi dữ liệu tới 10.000 dòng thì lệch thực hiện rất chậm. Các AC có cách nào thực hiện nhanh hơn bằng VBa không. Các AC chỉ giúp!
Sub tachtinh()
Dim arr, i As Long, T, Lr As Long, a As Long
Application.ScreenUpdating = False
With Sheets("DATA")
Lr = .Range("A" & Rows.Count).End(xlUp).Row
If Lr < 2 Then Exit Sub
.Range("B2:B" & Lr).ClearContents
arr = .Range("A2:B" & Lr).Value
For i = 1 To UBound(arr, 1)
T = Split(arr(i, 1), ",")
a = UBound(T) - 1
If a > -1 Then arr(i, 2) = T(a)
Next i
.Range("A2:B" & Lr).Value = arr
End With
Application.ScreenUpdating = True
End Sub
Bạn test thử xemFile bên dưới thực hiện việc tách dữ liệu trong chuỗi, nhưng khi dữ liệu tới 10.000 dòng thì lệch thực hiện rất chậm. Các AC có cách nào thực hiện nhanh hơn bằng VBa không. Các AC chỉ giúp!
Sub tach_tinh_()
On Error Resume Next
Dim i As Long, j As Long
Dim Nguon
Dim Kq
Worksheets("Data").Select
Nguon = Range("a2", Range("a2").End(xlDown))
j = UBound(Nguon)
ReDim Kq(1 To j, 1 To 1)
For i = 1 To j
Kq(i, 1) = StrReverse(Trim(Split(StrReverse(Nguon(i, 1)), ",")(1)))
Next i
Range("b2").Resize(j, 1) = Kq
End Sub