Trong quá trình làm việc với Excel, sẽ không ít lần bạn gặp trường hợp muốn xóa rất nhiều dòng mà trong đó thỏa mãn chung 1 điều kiện nhất định. Để giúp bạn có thể thực hiện được nhanh chóng thì bài viết dưới đây sẽ hướng dẫn cho bạn chi tiết cách xóa nhiều dòng trong Excel. Cùng theo dõi ngay nhé!
Bạn có thể biết chút ít về VBA và đang nghĩ ra một kế hoạch sẽ dùng vòng lặp trong VBA để giúp giải quyết việc xóa nhiều dòng tự động và nhanh chóng. Bạn có thể tự viết được 1 đoạn code như sau:
Bạn đang xem: Cách xóa nhiều dòng trong excel
Sub DeleteUsingForLoop() | |
Dim rowIndex As Long | |
Application.ScreenUpdating = False | |
With Sheet1 | |
.Range(“D1”) = Now | |
For rowIndex = 40000 To 1 Step –1 | |
If .Range(“A” & rowIndex).Value 0.1 Then | |
.Range(“A” & rowIndex).EntireRow.Delete | |
End If | |
Next | |
.Range(“E1”) = Now | |
End With | |
Application.ScreenUpdating = True | |
MsgBox “Done” | |
End Sub |
Sau khi đã thực hiện bấm nút cho code chạy, việc bạn chỉ làm lúc này là thư thái chờ đợi trong vòng 10 phút để có kết quả. Tuy nhiên, khi 10 phút đã kết thúc, bạn vẫn chưa nhận được kết quả ưng ý bởi những lí do sau đây:
CHUẨN BỊ DỮ LIỆU ĐỂ TEST VIỆC XÓA NHIỀU DÒNG
Dữ liệu dùng để test việc xóa dòng của bạn sẽ nằm trong cột A của Sheet1 vùng A1:A40000, được biết đến là các giá trị trong khoảng 0 tới 1 được tạo ra bởi hàm mảng động mới trong Excel RandArray Tại đây, bạn sẽ đi xóa các dòng mà cột A có giá trị nhỏ hơn 0,1. Và sẽ có khoảng 4000 dòng như vậy
Với đoạn code VBA bên trên, thì việc thực hiện xóa dòng theo điều kiện này sẽ mất tầm hơn 10 phút. Trong hình sau, D1 sẽ là thời gian bắt đầu, còn D2 là thời gian đoạn code kết thúc chạy.
CÁCH XÓA NHIỀU DÒNG THEO ĐIỀU KIỆN NHANH HƠN
Cách 1:
Ý tưởng thực hiện ở đây là, bạn sẽ dùng 1 công thức tại cột phụ để “nhận biết” được dòng nào cần xóa, sau đó xóa với đoạn code VBA bên dưới:
Sub DeleteUsingSpecialCells() | |
Application.ScreenUpdating = False | |
With Sheet1.Range(“B1:B40000”) | |
.Range(“E1”) = Now | |
.Formula = “=IF(A1 | |
.Cells.SpecialCells(xlCellTypeFormulas, xlErrors).EntireRow.Delete | |
.Range(“E2”) = Now | |
End With | |
Application.ScreenUpdating = True | |
MsgBox “Done” | |
End Sub |
Cách 2:
Dùng hàm Filter trong bộ hàm mảng động mới của Microsoft. Bằng cách này, filter gần như sẽ có kết quả ngay lập tức (kết quả lọc ở cột B)
Cách 3:
Dùng chức năng Filter để lọc kết quả hay copy qua sheet khác:
Sub DeleteRowsWithValuesNewSheet() ‘100K records 10K to delete | |
‘Test 1: 2.40234375 sec | |
‘Test 2: 2.41796875 sec | |
‘Test 3: 2.40234375 sec | |
‘1M records 100K to delete | |
‘Test 1: 32.9140625 sec | |
‘Test 2: 33.1484375 sec | |
‘Test 3: 32.90625 sec | |
Dim oldWs As Worksheet, newWs As Worksheet, rowHeights() As Long | |
Dim wsName As String, t As Double, oldUsedRng As Range | |
FastWB True: t = Timer | |
Set oldWs = Worksheets(1) | |
wsName = oldWs.Name | |
Set oldUsedRng = oldWs.Range(“A1”, GetMaxCell(oldWs.UsedRange)) | |
If oldUsedRng.Rows.Count > 1 Then ‘If sheet is not empty | |
Set newWs = Sheets.Add(After:=oldWs) ‘Add new sheet | |
With oldUsedRng | |
.AutoFilter Field:=1, Criteria1:=“Test String” | |
.Copy ‘Copy visible data | |
End With | |
With newWs.Cells | |
.PasteSpecial xlPasteColumnWidths | |
.PasteSpecial xlPasteAll ‘Paste data on new sheet | |
.Cells(1, 1).Select ‘Deselect paste area | |
.Cells(1, 1).Copy ‘Clear Clipboard | |
End With | |
oldWs.Delete ‘Delete old sheet | |
newWs.Name = wsName | |
End If | |
FastWB False: InputBox “Duration: “, “Duration”, Timer – t | |
End Sub |
Sub DeleteIf() | |
Dim LR As Long | |
Application.ScreenUpdating = False | |
With Sheet1 | |
.Range(“C1”).Value = Now | |
If .AutoFilterMode Then .AutoFilterMode = False | |
LR = .Range(“B” & .Rows.Count).End(xlUp).Row | |
With .Range(“B1”).Resize(LR) | |
.AutoFilter | |
.AutoFilter Field:=1, Criteria1:=“>0.5” | |
.Offset(1).Resize(LR – 1).SpecialCells(xlCellTypeVisible).EntireRow.Delete Shift:=xlUp | |
End With | |
.AutoFilterMode = False | |
.Range(“C2”).Value = Now | |
End With | |
Application.ScreenUpdating = True | |
End Sub |
Đánh giá bài viết
Xem thêm: 10 Bộ Phim Tên Hề Sát Nhân, Top 17 Phim Về Chú Hề Kinh Dị, Gây Ám Ảnh Nhất
Hướng dẫn cách xóa Hyperlinks trong Word cực đơn giảnHyperlink trong Word là những liên kết đến một trang web hay một thư mục nào đó rất hữu ích trong việc tìm kiếm và kết nối thông tin. Tuy nhiên, đôi lúc người dùng sẽ không cần đến những liên kết này và muốn xóa nó đi. Vậy phải…Xem chi tiết: Hướng dẫn cách xóa Hyperlinks trong Word cực đơn giản
Ta biết đến Excel với trang tính có chứa rất nhiều công thức, hàm khác nhau thì ít ai biết rằng trong Word cũng có thể thao tác các hàm cụ thể để người dùng sử dụng. Vậy Word cung cấp những hàm nào và có thông dụng như Excel?…Xem chi tiết: Hướng dẫn cách tạo văn bản ngẫu nhiên trong Word
Bạn đang muốn lưu tài liệu word của mình dưới dạng trang web nhưng chưa biết làm cách nào? Vậy thì bài viết dưới đây sẽ giúp bạn trả lời chi tiết nhất! CÁCH LƯU TÀI LIỆU DƯỚI DẠNG TRANG WEB Lựa chọn tốt nhất để lưu tài liệu dưới…Xem chi tiết: Hướng dẫn cách lưu tài liệu dưới dạng trang web
Trong lúc soạn thảo văn bản trên Word, bạn luôn muốn biết đoạn văn bản của mình đã được bao nhiêu từ. Thao tác thực hiện rất đơn giản, chỉ cần mở bảng thống kê là kiểm tra được. Hãy cùng tìm hiểu chi tiết cách thực hiện trong bài…Xem chi tiết: Hướng dẫn mở bảng thống kê chữ trong Word
Trong quá trình thao tác với Word, bạn sẽ không thể không dùng đến dấu đóng mở ngoặc đơn để mô tả chi tiết thêm cho một vấn đề nào đó hay là một câu ghi chú,.... Tuy nhiên, nếu trong trường hợp bạn muốn xóa bỏ tất cả các…Xem chi tiết: Hướng dẫn xóa bỏ phần văn bản nằm trong dấu ngoặc đơn
Post navigation
← Cách xác định thời gian…
Tổng hợp các các kiểu… →
Trả lời Hủy
Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *
Bình luận
Tên *
Email *
Trang web
Lưu tên của tôi, email, và trang web trong trình duyệt này cho lần bình luận kế tiếp của tôi.