Xóa vùng trống trong một bảng

Liên hệ QC

Yeuvoyeucon

Thành viên hoạt động
Tham gia
30/10/09
Bài viết
143
Được thích
23
Kính gửi anh Chị
Em muốn xóa các dòng trống tại cột D. Em đã làm code mà nó không chạy ạ. Xem giúp em với ạ.


Sub Xoa_dong ()
Dim i As Long, lr As Long, rng As Range
lr = Sheet1.Cells(3, "B").End(xlDown).Row
rng = Sheet1.Range("D3 : ") & lr
For i = 3 To lr
If Not rng Is Nothing Then rng.EntireRow.Delete
Next i
End Sub
 
Lần chỉnh sửa cuối:
Kính gửi anh Chị
Em muốn xóa các dòng trống tại cột D. Em đã làm code mà nó không chạy ạ. Xem giúp em với ạ.


Sub Xoa_dong ()
Dim i As Long, lr As Long, rng As Range
lr = Sheet1.Cells(3, "B").End(xlDown).Row
rng = Sheet1.Range("D3 : ") & lr
For i = 3 To lr
If Not rng Is Nothing Then rng.EntireRow.Delete
Next i
End Sub
Bạn tham khảo. Code dưới đây xét cột D, dòng 1 : 10
Mã:
Sub abc()
Dim i
For i = 10 To 1 Step -1
    If Sheet1.Range("D" & i) = "" Then
        Sheet1.Range("D" & i).EntireRow.Delete
    End If
Next i
End Sub
 
Upvote 0
Sợ dòng code này thiệt.
rng = Sheet1.Range("D3 : ") & lr
Thế này mà không báo lỗi thì cũng lạ (...mà nó không chạy - sic -> không chạy chứ không phải báo lỗi)
 
Upvote 0
Sợ dòng code này thiệt.
rng = Sheet1.Range("D3 : ") & lr
Thế này mà không báo lỗi thì cũng lạ (...mà nó không chạy - sic -> không chạy chứ không phải báo lỗi)
rng = Sheet1.Range("D3 : D") & lr

anh ạ. Tại em viết D3:D nó hiện trên room là mặt cười nên lúc sửa lại em quên
 
Upvote 0
rng = Sheet1.Range("D3 : D") & lr

anh ạ. Tại em viết D3:D nó hiện trên room là mặt cười nên lúc sửa lại em quên
Có 2 chỗ sai.
1. Phải Set rng = ... chứ không thể rng = ...
2. Ir phải ở trong ngoặc kia chứ sao lại nằm ngoài! ("D3: D" & Ir)
 
Upvote 0
PHP:
Sub Xoa_dong ()
const startRow = 3
Dim i As Long, lastRow As Long, rng As Range, data as variant, str as string
Dim ws as worksheet
set ws = sheet3
lastRow = ws.Range("B" & ws.Rows.Count).end(xlup).row
if lastRow < startRow then exit sub
data =ws.range("D" & startRow ).resize(lastRow - startRow + 1 + 1, 1).value2
set rng = ws.Range("D" & ws.Rows.Count)
For i=1 to ubound(data,1)-1
str = data(i,1)
if len(str)=0 then
set rng = union(rng, ws.Range("D" & i + startRow - 1))
end if
Next i
rng.entireRow.delete
End Sub
 
Upvote 0
Anh!chị giúp cho trường hợp của tôi tương tự: trong vùng D5:K100 mỗi cột đều có xen ô trống. Giờ muốn trong từng cột, sort thứ tự từ a-z rồi bỏ ô trống, dồn dữ liệu lên trên mỗi cột như với cột D của bài trên thì làm thế nào ạ?
Xin cảm ơn nhiều!
 
Upvote 0
Anh!chị giúp cho trường hợp của tôi tương tự: trong vùng D5:K100 mỗi cột đều có xen ô trống. Giờ muốn trong từng cột, sort thứ tự từ a-z rồi bỏ ô trống, dồn dữ liệu lên trên mỗi cột như với cột D của bài trên thì làm thế nào ạ?
Xin cảm ơn nhiều!
Mình copy/ paste transpose. Sort A-Z rồi copy/ paste transpose lại là được.

Tự làm, nếu có chậm lắm cũng 10 phút là xong.
 
Upvote 0
Web KT
Back
Top Bottom