Hỏi về hàm bỏ qua hoặc xóa những dòng không có số liệu (1 người xem)

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

hoclaptrinh

Thành viên hoạt động
Tham gia
28/8/14
Bài viết
151
Được thích
6
em có 1 file số liệu ở sheet 1 là 3 hàng có số liệu tiếp là 5 hàng trống rồi đến 3 hàng có số liệu tiếp 5 hàng trống ... qua sheet 2 thì ô a1=sheet!"a1" và kéo xuống nhưng em muốn 5 hàng trống kia không xuất hiện là 0 mà e muốn xóa hẳn và kéo 3 hàng số liệu kia lên trên sát với 3 hàng ở trên.
mong mọi người giúp đỡ!!!!
 
em có 1 file số liệu ở sheet 1 là 3 hàng có số liệu tiếp là 5 hàng trống rồi đến 3 hàng có số liệu tiếp 5 hàng trống ... qua sheet 2 thì ô a1=sheet!"a1" và kéo xuống nhưng em muốn 5 hàng trống kia không xuất hiện là 0 mà e muốn xóa hẳn và kéo 3 hàng số liệu kia lên trên sát với 3 hàng ở trên.
mong mọi người giúp đỡ!!!!
Cái này dùng vba đơn giản thôi. Bạn đưa file nên đi.
 
Thừ File này dùng mảng chắc là nhanh hơn File trên!
Mã:
Public Sub loc()
Dim i As Long, j As Long, data(), kq()
 data = Sheet1.Range("A1:H" & Sheet1.Range("H65500").End(xlUp).Row)
 ReDim kq(1 To UBound(data), 1 To 8)
    For i = 1 To UBound(data)
        If data(i, 1) <> "" Then
            j = j + 1
            For k = 1 To 8
                kq(j, k) = data(i, k)
            Next k
        End If
    Next i
    
    Sheet2.Range("A1").Resize(j, 8) = kq
End Sub
 

File đính kèm

đây là file đính kèm chuot0106 xem và giúp e với

góp thêm tí gió
Mã:
Sub Non_blank()
Application.ScreenUpdating = False
Sheet2.Cells.ClearContents
With Sheet1.[a1:h24]
.AutoFilter 1, "<>"
.SpecialCells(12).Copy Sheet2.[a1]
Sheet1.AutoFilterMode = False
End With
Application.ScreenUpdating = True

End Sub
 
Lần chỉnh sửa cuối:
ok men
thanh các a/c tren 6 diễn đàn nhiều nha
quá tốt ngoài sự mong đọi của e luôn hihihi
 
góp thêm tí gió
Mã:
Sub Non_blank()
Application.ScreenUpdating = False
Sheet2.Cells.ClearContents
With Sheet1.[a1:h24]
.AutoFilter 1, "<>"
.SpecialCells(12).Copy Sheet2.[a1]
Sheet1.AutoFilterMode = False
End With
Application.ScreenUpdating = True

End Sub
có thể sửa [a1:h24] thành (A:P) được không bạn hoặc (A:??) để lhi mình lọc thì nó chạy hết luôn chú không dừng lại ở cột H
 
có thể sửa [a1:h24] thành (A:P) được không bạn hoặc (A:??) để lhi mình lọc thì nó chạy hết luôn chú không dừng lại ở cột H

có thể xác định dòng cuối cùng như sau
Mã:
[A1].resize([A60000].end(3).row,16)

còn xác định cột cuối cùng thì koã định được, do các dòng số liệu của bạn khọng đều nhau, dòng nhiều dòng ít, không biết lấy đâu làm mốc
 
có thể sửa [a1:h24] thành (A:P) được không bạn hoặc (A:??) để lhi mình lọc thì nó chạy hết luôn chú không dừng lại ở cột H
Bạn muốn sửa thì bạn cứ sửa chứ có vấn đề gì đâu. Chẳng hạn bạn sửa thành [A1:AZ100],...
Nói thêm một chút:
- Nếu bạn muốn thao tác (lọc) trên toàn bộ vùng dữ liệu hiện có của sheet thì bạn có thể thay Sheet1.[A1:H24] bởi Sheet1.UsedRange
- Nếu bạn muốn thao tác (lọc) trên vùng từ ô A4 đến hết vùng dữ liệu trên sheet thì bạn có thể làm như sau:
Mã:
Dim lRow As Long, lCol As Long
lRow = Sheet1.Cells.Find("*", , , , xlByRows, xlPrevious).Row
lCol = Sheet1.Cells.Find("*", , , , xlByColumns, xlPrevious).Column
Sau đó thì vùng cần thao tác sẽ là Sheet1.Range([A4], Cells(lRow, lCol))
 

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

Back
Top Bottom