Sắp xếp dữ liệu theo ngày tháng với từng khu vực. (1 người xem)

Liên hệ QC

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

Mình đang vướng chỗ sắp xếp dữ liệu theo ngày tháng với từng khu vực. Nhờ các bạn và anh chị giúp đỡ.
Mình gửi file mẫu. Cảm ơn các bạn và anh chị trong diễn đàn.
https://drive.google.com/open?id=0B5efD-JQeb-cVG5nRTRwamtxOHc
chạy thử code
Mã:
Sub XapXepKV()
Dim Darr(), Arr(), Kv(), Bp1(), Bp2(), Bp3(), S, Mth As Long, Tmp As String, i As Long, Srow As Integer
Application.ScreenUpdating = False
Kv = Array(6, 13, 20, 26, 39, 48, 55, 65, 76, 82)
Darr = Range("A1:G" & Kv(9) - 2).Value2
Mth = CStr(Month(Now))
For k = 0 To UBound(Kv) - 1 Step 3
  ReDim Bp1(1 To Kv(k + 1) - Kv(k) - 1, 1 To 7)
  a1 = UBound(Bp1)
  ReDim Bp2(1 To Kv(k + 2) - Kv(k + 1) - 1, 1 To 7)
  a2 = UBound(Bp2)
  ReDim Bp3(1 To Kv(k + 3) - Kv(k + 2) - 2, 1 To 7)
  a3 = UBound(Bp3)
  n1 = 0: n2 = 0: n3 = 0
  For i = Kv(k) To Kv(k + 3) - 3
    Tmp = Darr(i, 2)
    If Tmp <> "" Then
      S = Split(Tmp, ".")
      If CStr(CLng(S(1))) = Mth Then
        n3 = n3 + 1
        For j = 1 To 7
          Bp3(n3, j) = Darr(i, j)
        Next j
      Else
        Tmp = Darr(i, 4) & Darr(i, 7)
        If Tmp = "" Then
          n2 = n2 + 1
          For j = 1 To 7
            Bp2(n2, j) = Darr(i, j)
          Next j
        Else
          S = Split(Tmp, ".")
          If CStr(CLng(S(1))) = Mth Then
            n2 = n2 + 1
            For j = 1 To 7
              Bp2(n2, j) = Darr(i, j)
            Next j
          Else
            n1 = n1 + 1
            For j = 1 To 7
              Bp1(n1, j) = Darr(i, j)
            Next j
          End If
        End If
      End If
    End If
  Next i
  Range("A" & Kv(k)).Resize(UBound(Bp1), 7) = Bp1
  Range("A" & Kv(k + 1)).Resize(UBound(Bp2), 7) = Bp2
  Range("A" & Kv(k + 2)).Resize(UBound(Bp3), 7) = Bp3
Next k
Application.ScreenUpdating = True
End Sub
 
Web KT

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

Back
Top Bottom