Xin giúp đỡ code sắp xếp các mã số có phần mã và phần ngày giống nhau (1 người xem)

  • Thread starter Thread starter LYSM
  • Ngày gửi Ngày gửi
Liên hệ QC

Người dùng đang xem chủ đề này

LYSM

Thành viên thường trực
Tham gia
16/3/11
Bài viết
290
Được thích
26
Em chào các anh chị!
Em có sub Tach các mã số tại sheet "Du lieu vao" sang sheet "C1C2", em nhờ anh chị thêm vào code phần sắp xếp sao cho các mã có cùng ngày và cùng phần mã số thì ở gần nhau. Các anh chị xem trong file đính kèm giúp em ạ.
Em cảm ơn nhiều!
 

File đính kèm

Em chào các anh chị!
Em có sub Tach các mã số tại sheet "Du lieu vao" sang sheet "C1C2", em nhờ anh chị thêm vào code phần sắp xếp sao cho các mã có cùng ngày và cùng phần mã số thì ở gần nhau. Các anh chị xem trong file đính kèm giúp em ạ.
Em cảm ơn nhiều!
Tạm thời lọc ra thêm 2 cột phụ, Sort theo 2 cột phụ xong thì xoá 2 cột phụ này.
Dựa vào code của bạn:
[GPECODE=vb]Public Sub Tach()
Dim Arr(), sArr(), I As Long, J As Long, K As Long
With Sheets("Du lieu vao")
Arr = .Range(.[A4], .[A65000].End(xlUp)).Resize(, 14).Value
ReDim sArr(1 To UBound(Arr, 1), 1 To 17)
For I = 1 To UBound(Arr, 1)
If UCase(Left(Arr(I, 1), 2)) = "C1" Or UCase(Left(Arr(I, 1), 2)) = "C2" Then
K = K + 1
For J = 1 To 14
sArr(K, 1) = K
sArr(K, J + 1) = Arr(I, J)
Next J
sArr(K, 16) = Mid(Arr(I, 1), 10, 5)
sArr(K, 17) = Mid(Arr(I, 1), 4, 5)
End If
Next I
End With
With Sheets("C1C2")
.[A10:O10000].ClearContents
If K Then
.[A10].Resize(K, 17).Value = sArr
.[B10].Resize(K, 16).Sort Key1:=.[P10], Key2:=.[Q10]
.[P10:Q10].Resize(K).ClearContents
End If
End With
End Sub[/GPECODE]
Sheet Du lieu vao, ô A53 dữ liệu nhập không giống ai.
 
Upvote 0
Tạm thời lọc ra thêm 2 cột phụ, Sort theo 2 cột phụ xong thì xoá 2 cột phụ này.
Dựa vào code của bạn:
[GPECODE=vb]Public Sub Tach()
Dim Arr(), sArr(), I As Long, J As Long, K As Long
With Sheets("Du lieu vao")
Arr = .Range(.[A4], .[A65000].End(xlUp)).Resize(, 14).Value
ReDim sArr(1 To UBound(Arr, 1), 1 To 17)
For I = 1 To UBound(Arr, 1)
If UCase(Left(Arr(I, 1), 2)) = "C1" Or UCase(Left(Arr(I, 1), 2)) = "C2" Then
K = K + 1
For J = 1 To 14
sArr(K, 1) = K
sArr(K, J + 1) = Arr(I, J)
Next J
sArr(K, 16) = Mid(Arr(I, 1), 10, 5)
sArr(K, 17) = Mid(Arr(I, 1), 4, 5)
End If
Next I
End With
With Sheets("C1C2")
.[A10:O10000].ClearContents
If K Then
.[A10].Resize(K, 17).Value = sArr
.[B10].Resize(K, 16).Sort Key1:=.[P10], Key2:=.[Q10]
.[P10:Q10].Resize(K).ClearContents
End If
End With
End Sub[/GPECODE]
Sheet Du lieu vao, ô A53 dữ liệu nhập không giống ai.
Em cảm ơn thầy nhiều! Chúc thầy mạnh khỏe
 
Upvote 0

Bài viết mới nhất

Back
Top Bottom