Copy dữ liệu trong bảng, khi Pate thì bỏ qua dòng dữ liệu không đúng yêu cầu!

Liên hệ QC

Thư Sinh Áo Trắng

Thành viên hoạt động
Tham gia
26/3/21
Bài viết
160
Được thích
31
copyboquadongdulieukhongyeucau.jpg
Xin giúp đỡ hàm hoặc code, để copy dữ liệu trong bảng và khi pate bỏ qua dòng dữ liệu không đúng yêu cầu(trong bảng có ô nào trống thì bỏ qua dòng dữ liệu đó)! Được kết quả như hình minh họa(file đính kèm). Em cảm ơn nhiều ạ!
 

File đính kèm

  • copyboquadongkhongdungyeucau.xlsm
    10.8 KB · Đọc: 6
View attachment 257369
Xin giúp đỡ hàm hoặc code, để copy dữ liệu trong bảng và khi pate bỏ qua dòng dữ liệu không đúng yêu cầu(trong bảng có ô nào trống thì bỏ qua dòng dữ liệu đó)! Được kết quả như hình minh họa(file đính kèm). Em cảm ơn nhiều ạ!
Thế nào thì gọi là kg đúng yêu cầu. Cái này đơn giản là đặt Filter rồi copy qua vùng khác là được mà ?
 

File đính kèm

  • 210419 GPE.xlsm
    10.9 KB · Đọc: 9
Upvote 0
View attachment 257369
Xin giúp đỡ hàm hoặc code, để copy dữ liệu trong bảng và khi pate bỏ qua dòng dữ liệu không đúng yêu cầu(trong bảng có ô nào trống thì bỏ qua dòng dữ liệu đó)! Được kết quả như hình minh họa(file đính kèm). Em cảm ơn nhiều ạ!
Thử .
Mã:
Sub laydulieu()
    Dim i As Long, lr As Long, arr, kq, a As Long
    With Sheets("sheet1")
         lr = .Range("A" & Rows.Count).End(xlUp).Row
         If lr = 1 Then Exit Sub
         arr = .Range("A2:D" & lr).Value
         ReDim kq(1 To UBound(arr), 1 To 4)
         For i = 1 To UBound(arr)
              If Len(arr(i, 2)) > 0 Then
                 a = a + 1
                 kq(a, 1) = arr(i, 1)
                 kq(a, 2) = arr(i, 2)
                 kq(a, 3) = arr(i, 3)
                 kq(a, 4) = arr(i, 4)
              End If
         Next i
        lr = .Range("A" & Rows.Count).End(xlUp).Row
        If lr > 1 Then .Range("h2:K" & lr).ClearContents
        If a Then .Range("H2:K2").Resize(a).Value = kq
   End With
End Sub
 
Upvote 0
Thế nào thì gọi là kg đúng yêu cầu. Cái này đơn giản là đặt Filter rồi copy qua vùng khác là được mà ?
Vâng ạ. Tuy vậy nó cũng nảy sinh vấn đề là ẩn đi mất dòng.
Thử .
Mã:
Sub laydulieu()
Em đang cần cái này quá. Code tuyệt vời anh @snow25 ạ!
Cảm ơn các anh đã giúp đỡ em!
 
Lần chỉnh sửa cuối:
Upvote 0
Upvote 0
Copy --> Paste ra, tắt Filter đi không mất hay ẩn dòng gì cả.
Hoặc Copy --> tắt Filter --> Paste, bạn làm thử xem coi mất gì không.
Người ta cố tình đưa bài vào box lập trình rồi mà cứ bắt filter thì tất nhiên là không chịu rồi.
 
Upvote 0
Copy --> Paste ra, tắt Filter đi không mất hay ẩn dòng gì cả.
Hoặc Copy --> tắt Filter --> Paste, bạn làm thử xem coi mất gì không.
Tôi nghĩ người ta đã kết giải pháp ở bài #3 rồi.
Những gì bạn nói cũng sẽ là "nho chua" trong ý người ta.
Người ta cố tình đưa bài vào box lập trình rồi mà cứ bắt filter thì tất nhiên là không chịu rồi.
Quá đúng.
Tôi chỉ không hiểu ở chỗ đã là muốn code thì phải tự code lấy, và chỉ hỏi một vài chỗ bí.
Nếu phải nhờ code a-z một công việc mà các công cụ trên Excel đã có sẵn thì cải thiện được việc gì? Chỉ cần thay đổi một chút thì lại phải nhờ chỉnh sửa, tiết kiệm được gì? Càng đi sâu vào vũng lầy VBA thì càng ngày càng xa rời với các hàm và công cụ mới của Excel.
 
Upvote 0
Em cảm ơn các anh đã chỉ cho!
Em thích code hơn vì biết chút ít về code nên khi có code thì sửa để chạy được ạ! Nhưng đúng là với công thức Excel ở chỗ này chưa biết sao cho tốt nhất nên post ở khu vực này ạ!
 
Upvote 0
Thấy vui thì viết.
+ Nếu xóa trực tiếp các hàng có ô trống của vùng chứa ô A1
Mã:
'
Sub XoaHangCoOTrong()
[A1].CurrentRegion.SpecialCells(xlCellTypeBlanks).EntireRow.Delete
end sub
+ Còn chép sang H1 rồi mới xóa:
Mã:
Sub ChepVaXoaHangCoOTrong()
Dim sH&
sH = [A1].CurrentRegion.Rows.Count
[A1].CurrentRegion.Copy [h1]
Range("I1:I" & sH).SpecialCells(xlCellTypeBlanks).Offset(, -1).Clear
Range("H1:K" & sH).SpecialCells(xlCellTypeBlanks).Delete Shift:=xlUp
End Sub
 
Upvote 0
Web KT

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

Back
Top Bottom