Xoá nhiều dòng trong excel (1 người xem)

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

markviduk86

Thành viên mới
Tham gia
8/9/10
Bài viết
5
Được thích
0
Chào các anh chị trên diễn đàn :)
Em lại gặp vấn đề này ah
Chẳng qua em có khoảng 500 dòng, nhưng giờ em muốn xoá tất cả các dòng chắn /hay lẻ thì phải làm như nào ah

Ví dụ như này:
Cell1: aaaa
Cell2:
Cell3: bbbbbb
Cell4: ccc
....
Cell500: dddd

E muốn xoá các dòng chẵn ah
Mong a/c giúp em nhé
Thanks all
 
Chào các anh chị trên diễn đàn :)
Em lại gặp vấn đề này ah
Chẳng qua em có khoảng 500 dòng, nhưng giờ em muốn xoá tất cả các dòng chắn /hay lẻ thì phải làm như nào ah

Ví dụ như này:


E muốn xoá các dòng chẵn ah
Mong a/c giúp em nhé
Thanks all
Dòng chẵn thì i mod 2 = 0, Dòng lẻ thì i mod 2 = 1
For i=1 to 500
if i mod 2=0 then
....
 
Chào các anh chị trên diễn đàn :)
Em lại gặp vấn đề này ah
Chẳng qua em có khoảng 500 dòng, nhưng giờ em muốn xoá tất cả các dòng chắn /hay lẻ thì phải làm như nào ah

Ví dụ như này:


E muốn xoá các dòng chẵn ah
Mong a/c giúp em nhé
Thanks all
Dùng cột phụ, gõ hàm sau
=MOD(ROW(),2) --> Kéo xuống
Sau đó dùng Autofilter lọc ra, xóa tùy thích
 
Lần chỉnh sửa cuối:
Chào các anh chị trên diễn đàn :)
Em lại gặp vấn đề này ah
Chẳng qua em có khoảng 500 dòng, nhưng giờ em muốn xoá tất cả các dòng chắn /hay lẻ thì phải làm như nào ah

Ví dụ như này:


E muốn xoá các dòng chẵn ah
Mong a/c giúp em nhé
Thanks all
-Cho mình thử tý,đằng nào cũng đang hoc VB
 

File đính kèm

trời cái này có cần dùng hàm đâu chỉ cần dùng autofill thôi
 
To MinhCong: Thường nếu cần xóa dòng thì người ta xóa từ dưới lên trên
 
Theo hướng dẫn của thầy SA_DQ, Em làm tạm đoạn code xóa những dòng chẵn như sau:
Mã:
Sub xoadong()
  Dim i As Long
  Application.ScreenUpdating = False
    For i = Range("A65536").End(xlUp).Row To 1 Step -1
        j = i Mod 2
        If [COLOR=Red]j = 0[/COLOR] Then Rows(i & ":" & i).Delete
    Next i
  Application.ScreenUpdating = True
End Sub
Và đây là đoạn code chọn vùng cần xóa trước khi chạy code:
Mã:
Sub xoadong1()
  Dim i As Long
  Application.ScreenUpdating = False
    For i = Selection.Rows.Count To 1 Step -1
        j = i Mod 2
        If j = 0 Then Rows(i & ":" & i).Delete
    Next
  Application.ScreenUpdating = True
End Sub
Nếu xóa dòng lẻ thì chỉ cần thay j = 0 thành j = 1
 
Lần chỉnh sửa cuối:
Theo hướng dẫn của thầy SA_DQ, Em làm tạm đoạn code xóa những dòng chẵn như sau:
Mã:
Sub xoadong()
  Dim i As Long
  Application.ScreenUpdating = False
    For i = Range("A65536").End(xlUp).Row To 1 Step -1
        j = i Mod 2
        If [COLOR=Red]j = 0[/COLOR] Then Rows(i & ":" & i).Delete
    Next i
  Application.ScreenUpdating = True
End Sub
Và đây là đoạn code chọn vùng cần xóa trước khi chạy code:
Mã:
Sub xoadong1()
  Dim i As Long
  Application.ScreenUpdating = False
    For i = Selection.Rows.Count To 1 Step -1
        j = i Mod 2
        If j = 0 Then Rows(i & ":" & i).Delete
    Next
  Application.ScreenUpdating = True
End Sub
Nếu xóa dòng lẻ thì chỉ cần thay j = 0 thành j = 1
Bạn thử code với 60,000 dòng xem thử
Bài này nếu dùng For Next thật sự cũng không dễ ăn đâu nha! (nhất là với dữ liệu lớn)
Chỉ thây AutoFilter xem chừng khả thi nhất
 
Bạn thử code với 60,000 dòng xem thử
Bài này nếu dùng For Next thật sự cũng không dễ ăn đâu nha! (nhất là với dữ liệu lớn)
Chỉ thây AutoFilter xem chừng khả thi nhất
Dữ liệu lớn thì xoá dòng bằng cách AutoFilter cũng rất ì ạch. Tôi nghĩ cách tốt nhất là dùng công cụ Sort kết hợp với cột phụ. Làm bằng tay cũng rất nhanh.
 
Có cách nào xóa dòng chẵn hoặc dòng lẽ mặc định của sheet Excel ko?
Nhờ các anh chị hướng dẫn cụ thể ah!
 
Có cách nào xóa dòng chẵn hoặc dòng lẽ mặc định của sheet Excel ko?
Nhờ các anh chị hướng dẫn cụ thể ah!

Xoá một dòng mặc định thì dòng kế tiếp tự động thay vào vị trí nó. Yêu cầu gì lạ vậy?

Xoá các dòng chẵn từ 1 đến 10000 (đếm ngược từ 10000 trở lên và xoá, nhảy bước 2)

For i = 10000 To 1 Step -2
ActiveSheet.Rows(i).Delete
Next i

Xoá các dòng lẻ từ 1 đến 10000 (đếm ngược từ 10000-1 trở lên và xoá, nhảy bước 2)
For i = 10000-1 To 1 Step -2
ActiveSheet.Rows(i).Delete
Next i

(chạy khoảng 10 giây cho 60000 dòng)

Lưu ý: làm việc với chẵn lẻ không ai làm theo thuật toán của MinhCuong cả (mod 2 = 0). Luôn luôn dùng vòng lặp bước nhảy 2. Dẫu không biết trước dòng cuối cùng là chẵn hay lẻ thì người ta cũng tính nó ra rồi mới bắt đầu vòng lặp.

for i = [dòng cuối] - IIF([dòng cuối] = chẵn, 0, 1) to 1 step -2
 
Lần chỉnh sửa cuối:

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

Back
Top Bottom