Code Xóa dòng trống bị lỗi.

Liên hệ QC

phuyen89

Thành viên tích cực
Tham gia
20/11/08
Bài viết
870
Được thích
336
Nghề nghiệp
Student
Chào Anh/ Chị.
Em thử viết code xóa dòng trống, tuy nhiên chạy 1 lần nó không xóa hết, mà chạy lần thứ 2, thứ 3.
Em chưa biết nguyên nhân vì sao? mong mọi người xem xét giúp (File hơn 1M nên em hông upload).
PHP:
Sub DeleteRowBlank()
Dim Rng As Range
Dim Vung As Range
Set Vung = Range("H2", Range("H4000").End(xlUp))
For Each Rng In Vung
    If Rng.Value = 0 Then
    Rng.EntireRow.Delete
    End If
    
Next Rng

End Sub
 
Chào Anh/ Chị.
Em thử viết code xóa dòng trống, tuy nhiên chạy 1 lần nó không xóa hết, mà chạy lần thứ 2, thứ 3.
Em chưa biết nguyên nhân vì sao? mong mọi người xem xét giúp (File hơn 1M nên em hông upload).
PHP:
Sub DeleteRowBlank()
Dim Rng As Range
Dim Vung As Range
Set Vung = Range("H2", Range("H4000").End(xlUp))
For Each Rng In Vung
    If Rng.Value = 0 Then
    Rng.EntireRow.Delete
    End If
    
Next Rng

End Sub
Khi xoá dòng trực tiếp trên sheet thì phải xoá từ dưới lên
PHP:
For r = [H65536].End(3).Row to 2 Step -1
   If Cells(r,8)= "" Then Cells(r,8).Entirerow.Delete
Next
Hoặc xoá bằng mảng
 
Upvote 0
Khi xoá dòng trực tiếp trên sheet thì phải xoá từ dưới lên
PHP:
For r = [H65536].End(3).Row to 2 Step -1
   If Cells(r,8)= "" Then Cells(r,8).Entirerow.Delete
Next
Hoặc xoá bằng mảng

Cảm ơn Anh.
Nhưng vì sao phải làm như thế Anh.
Khi em xoá dòng, thì dòng dưới sẽ đẩy lên, lắp vào dòng bị xoá. Và vùng Xoá của em cũng được điều chỉnh lại mà.
Thì tại sao nó lại không xoá hết được. Mong Anh giải thích thêm cho em mở rộng kiến thức!
 
Upvote 0
Chạy ngược từ dưới lên trên mới xóa hết được bạn ạ.
 
Upvote 0
Cảm ơn Anh.
Nhưng vì sao phải làm như thế Anh.
Khi em xoá dòng, thì dòng dưới sẽ đẩy lên, lắp vào dòng bị xoá. Và vùng Xoá của em cũng được điều chỉnh lại mà.
Thì tại sao nó lại không xoá hết được. Mong Anh giải thích thêm cho em mở rộng kiến thức!
Câu màu đỏ bị sai.
Bạn chạy từ trên xuống:
-Biến =7
Bạn đang ở dòng 7 - Dòng 7 bị xóa - Dòng dưới từ 8 dồn lên thành 7
-Biến +1 thành 8
Xét dòng 8 hiện giờ (Trước đây khi chưa xóa dòng 7 thì nó là dòng 9)
Dòng 8 cũ đã thành dòng 7, bỏ qua không xét nữa, vậy thì ....
Hổng biết.
 
Upvote 0
Em thử viết code xóa dòng trống, tuy nhiên chạy 1 lần nó không xóa hết

Lúc này bận quá nên làm biếng, bạn xem File rồi sử dụng Code và tùy nghi ứng biến.

Trong File có nhiều nút, nhưng tôi chỉ chừa lại code của nút Xóa dòng cột và tách, lập danh sách.

Ở sheet TRANG_CHU, bạn chỉ cần nhấn nút Xóa dòng cột và tách, lập danh sách: Thì sheet 1 tự động xóa các dòng cột trống của Sheet 1, sau đó lấy dữ liệu vào Sheet TACH_PHONG và từ Sheet TACH_PHONG nó sẽ tách danh sách của từng phòng ra sheet mới theo tên phòng đã gán.

Lưu ý:
- Sheet 1: sử dụng nút Chọn File và Lấy dữ liệu vào Sheet1 (tôi đã lấy rồi và xóa code), sheet này được lấy từ phần mềm ra (vì bạn không có phần mềm này nên không cần dùng đến).

- Sheet TACH_PHONG: Sau khi lấy dữ liệu vào sheet 1 nó tự gán vào sheet này và sẽ tách danh sách Sheet TACH_PHONG ra sheet mới theo tên phòng đã gán.
 

File đính kèm

  • giao nhan cong van den.rar
    353.7 KB · Đọc: 23
Upvote 0
Web KT
Back
Top Bottom