Sắp xếp Công việc theo thời gian. (1 người xem)

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

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

minhngh

Thành viên mới
Tham gia
21/2/09
Bài viết
8
Được thích
0
Chào các a chị.
Em có một bài toán cụ thể nhờ các a chị giúp.
Việc tìm kiếm và sắp xếp công việc theo thời gian.
Trong sheet 1 là tổng hợp công việc.
Em muốn sắp xếp công việc theo thời gian ( tổng hợp theo thứ tự ở 2 cột C và D)
Kết quả được trả về như trong sheet 2.
Nhờ a chị giup e.
 

File đính kèm

Chào các a chị.
Em có một bài toán cụ thể nhờ các a chị giúp.
Việc tìm kiếm và sắp xếp công việc theo thời gian.
Trong sheet 1 là tổng hợp công việc.
Em muốn sắp xếp công việc theo thời gian ( tổng hợp theo thứ tự ở 2 cột C và D)
Kết quả được trả về như trong sheet 2.
Nhờ a chị giup e.
Nối chuỗi, sắp xếp lại mà dùng công thức thì "lo không nỗi". Thử code VBA nhé.
Enable Macros khi mở file, click chuột vào hình "chú tiểu" 1 cái.
 

File đính kèm

Cam ơn Ba tê nhiều. Ba tê có thể giaải thích qa về code đươc ko ạ.
 
Cam ơn Ba tê nhiều. Ba tê có thể giaải thích qa về code đươc ko ạ.
Ấn Alt+F11 sẽ thấy cái này và bạn tự nghiên cứu, còn giải thích thì "hổng nỗi".
[GPECODE=vb]Public Sub GPE()
Dim Dic As Object, Tem As Variant, I As Long, J As Long, K As Long
Dim Text1 As String, Text2 As String, Str As String, sArr(), dArr()
Set Dic = CreateObject("Scripting.Dictionary")
With Sheets("Lich")
Text1 = .[F1].Value
Text2 = .[F2].Value
sArr = .Range(.[B4], .[B4].End(xlDown)).Resize(, 3).Value
ReDim dArr(1 To UBound(sArr, 1) * 2, 1 To 2)
End With
For I = 1 To UBound(sArr, 1)
For J = 2 To 3
Str = IIf(J = 2, Text1, Text2)
If sArr(I, J) <> Empty Then
Tem = sArr(I, J)
If Not Dic.Exists(Tem) Then
K = K + 1
Dic.Add Tem, K
dArr(K, 1) = Tem
dArr(K, 2) = Str & sArr(I, 1)
Else
dArr(Dic.Item(Tem), 2) = dArr(Dic.Item(Tem), 2) & ", " & Str & sArr(I, 1)
End If
End If
Next J
Next I
Application.ScreenUpdating = False
With Sheets("CV_NGAY")
.[A3:B1000].ClearContents
.[A3:B1000].Borders.LineStyle = xlNone
If K Then
.[A3].Resize(K, 2) = dArr
.[A3].Resize(K, 2).Sort Key1:=.[A3]
.[A3].Resize(K, 2).Borders.LineStyle = xlContinuous
End If
End With
Application.ScreenUpdating = True
Set Dic = Nothing
End Sub[/GPECODE]
 
Web KT

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

Back
Top Bottom