Giúp em bỏ hàng trống và sắp xếp lại bảng!!

Liên hệ QC

N Khánh

Thành viên mới
Tham gia
22/11/18
Bài viết
30
Được thích
0
Em có bảng dữ liệu trong sheet1, em muốn bỏ hàng trống và sắp xếp lại để được kết quả như trong sheet output ạ. Trước nay em làm bằng tay vs số lượng nhiều rất mất công ạ. Giờ có cách nào để tự sắp xếp lại ngay trong sheet1 luôn ko ạ, em cảm ơn mọi người nhiều !!!
 

File đính kèm

  • Toolsheet1.xls
    542 KB · Đọc: 33
Em có bảng dữ liệu trong sheet1, em muốn bỏ hàng trống và sắp xếp lại để được kết quả như trong sheet output ạ. Trước nay em làm bằng tay vs số lượng nhiều rất mất công ạ. Giờ có cách nào để tự sắp xếp lại ngay trong sheet1 luôn ko ạ, em cảm ơn mọi người nhiều !!!
Đây bạn xem.
Mã:
Sub sapxep()
Dim arr, arr1, arr2
Dim a As Long, i As Long, j As Long
With Sheet1
    arr = .Range("c11:x27").Formula
    arr2 = .Range("c11:c27").Value
    ReDim arr1(1 To UBound(arr, 1), 1 To UBound(arr, 2))
    For i = 1 To UBound(arr, 1)
        If arr2(i, 1) <> Empty Then
        a = a + 1
           For j = 1 To 22
               arr1(a, j) = arr(i, j)
           Next j
        End If
    Next i
  .Range("c11:x27").ClearContents
 If a Then .Range("c11").Resize(a, 22).Formula = arr1
End With
End Sub
 
Upvote 0
Đây bạn xem.
Mã:
Sub sapxep()
Dim arr, arr1, arr2
Dim a As Long, i As Long, j As Long
With Sheet1
    arr = .Range("c11:x27").Formula
    arr2 = .Range("c11:c27").Value
    ReDim arr1(1 To UBound(arr, 1), 1 To UBound(arr, 2))
    For i = 1 To UBound(arr, 1)
        If arr2(i, 1) <> Empty Then
        a = a + 1
           For j = 1 To 22
               arr1(a, j) = arr(i, j)
           Next j
        End If
    Next i
  .Range("c11:x27").ClearContents
If a Then .Range("c11").Resize(a, 22).Formula = arr1
End With
End Sub
Chuẩn rồi bạn ạ ^^ mình nhờ bạn xíu vs nha, liệu sau khi sắp xếp cái đường kẻ border nó cũng thu sát đến giá trị cuối cùng giống bên output đc không nhỉ ^^
 
Upvote 0
nhờ mọi người giúp em nốt cái đường border cho giống bên output với ạ. Em cảm ơn mọi người nhiều !!!
 
Upvote 0
Xin fép SNow25 nghen; Tác giả bài đăng thử với cái ni:
PHP:
Sub SapXep()
Dim Arr, Arr1, Arr2
Dim W As Long, I As Long, J As Long
With Sheet1
    Arr = .Range("c11:x27").Formula
    Arr2 = .Range("c11:c39").Value
    ReDim Arr1(1 To UBound(Arr, 1), 1 To UBound(Arr, 2))
    For I = 1 To UBound(Arr, 1)
        If Arr2(I, 1) <> Empty Then
        W = W + 1
           For J = 1 To 22
               Arr1(W, J) = Arr(I, J)
           Next J
        End If
    Next I
  .Range("c11:x39").ClearContents
If W Then .Range("c11").Resize(W, 22).Formula = Arr1
Range("A" & (11 + W) & ":X39").Clear             'GPE.COM    '
End With
End Sub
 
Upvote 0
Xin fép SNow25 nghen; Tác giả bài đăng thử với cái ni:
PHP:
Sub SapXep()
Dim Arr, Arr1, Arr2
Dim W As Long, I As Long, J As Long
With Sheet1
    Arr = .Range("c11:x27").Formula
    Arr2 = .Range("c11:c39").Value
    ReDim Arr1(1 To UBound(Arr, 1), 1 To UBound(Arr, 2))
    For I = 1 To UBound(Arr, 1)
        If Arr2(I, 1) <> Empty Then
        W = W + 1
           For J = 1 To 22
               Arr1(W, J) = Arr(I, J)
           Next J
        End If
    Next I
  .Range("c11:x39").ClearContents
If W Then .Range("c11").Resize(W, 22).Formula = Arr1
Range("A" & (11 + W) & ":X39").Clear             'GPE.COM    '
End With
End Sub
Em cảm ơn cả 2 bác nhiều lắm ^^
 
Upvote 0
@snow25 @SA_DQ em muốn hỏi là liệu có làm đc 1 cái undo để phòng trường hợp mình chỉnh sửa sai không ạ !!!
 
Upvote 0
@snow25[/USER] @SA_DQ em muốn hỏi là liệu có làm đc 1 cái undo để phòng trường hợp mình chỉnh sửa sai không ạ!
Thì chọn 1 sân đủ kích thước& đáp dữ liệu xuống đó trước; Sau đó chép lên Form nếu kiểm tra thấy ưng ý.
 
Upvote 0

File đính kèm

  • Autofilter + VBA.xls
    73 KB · Đọc: 8
Upvote 0
Web KT
Back
Top Bottom