Hướng dẫn create a macro to delete rows in excel - tạo macro xóa hàng trong excel

Khai thác sức mạnh của một macro Excel để xóa các hàng trong bảng tính

Danh mục: Macrostags: Excel Macro Delete Row Tags: Excel Macro Delete Row

Trong thế giới có nhịp độ nhanh, dựa trên công nghệ của chúng tôi, không có ý nghĩa gì khi dành thời gian nhấp qua các hàng và hàng trên bảng tính chỉ để xóa chúng. Bằng cách sử dụng sức mạnh của các macro Excel, bạn có thể tự động hóa quy trình để Excel sẽ loại bỏ bất kỳ và tất cả các hàng được gắn cờ ngay lập tức.

Hãy để một ví dụ trong thế giới thực. Transfiguration, Inc., là nhà phân phối vật tư y tế trên toàn thế giới. Công ty trị giá hàng triệu đô la này chia doanh số cho các quốc gia và khu vực, và kế toán viên trưởng của Đông Nam Á muốn xóa tất cả các tài khoản không hoạt động khỏi bảng tính của công ty để anh ta có thể thấy khách hàng hiện tại thông tin rõ ràng hơn. Trong mẫu thông tin khách hàng dưới đây, mọi tài khoản không hoạt động đều được đánh dấu là sai. Mã được giải thích trong bài đăng này sẽ lặp qua tất cả các hàng của bảng tính, xóa tất cả các tài khoản không hoạt động trong Excel.

Thiết lập dữ liệu

Ví dụ dưới đây bao gồm số tài khoản của khách hàng chuyển hóa ở khu vực Đông Nam, lần cuối cùng mỗi khách hàng thực hiện mua hàng từ Biến hình và liệu tài khoản của khách hàng có hoạt động hay không (đúng) hay không hoạt động (sai). Hãy nhớ rằng, kế toán viên muốn xóa tất cả các tài khoản không hoạt động trong Excel, vì vậy chúng tôi sẽ tạo một macro để xóa tất cả các hàng trong đó tài khoản hoạt động là sai.FALSE.

Hướng dẫn create a macro to delete rows in excel - tạo macro xóa hàng trong excel

Trước khi bạn bắt đầu

Trong trường hợp này, kế toán có thể thấy dễ dàng hơn khi bắt đầu bằng cách ghi một macro thay vì chỉ cần mở cửa sổ Visual Basic và gõ vào Excel. Để làm điều này, trên tab Nhà phát triển, nhấp vào bản ghi macro và ngay lập tức dừng ghi. Macro này không thực hiện hành động, nhưng nó thiết lập khung để sửa đổi.Developer tab click Record Macro and immediately Stop Recording. This macro performs no actions, but it sets up the framework to modify.

Điều quan trọng là phải nhớ bật chế độ nhà phát triển trong Excel. Tab ngoài cùng bên phải trên ruy băng nên nói nhà phát triển. Nếu không, sau đó bật nó bằng cách nhấp chuột phải vào ruy băng, chọn tùy chỉnh ruy băng và kiểm tra hộp cho nhà phát triển.Developer. If not, then turn it on by right-clicking the ribbon, choosing Customize Ribbon, and checking the box for Developer.

The Variables

(Sau đây mô tả các chi tiết của các hàm macro. Macro đã hoàn thành bên dưới và có thể được sao chép và dán trực tiếp vào bảng tính của bạn.)

Macro Excel phải biết nơi tìm tài khoản để xóa. Mã này được thiết lập để sử dụng khu vực xung quanh lựa chọn cùng một khu vực bạn có thể chọn bằng cách nhấn -*.

Set rngRange = Selection.CurrentRegion

Macro cũng cần biết cột nào chứa giá trị kiểm tra. Mã được đặt để sử dụng cột của lựa chọn khi bạn thực thi macro, nó lấy từ ActiveCell.Column. Nếu bạn đã dán dữ liệu trong các cột A: C, thì hãy chắc chắn rằng điểm chọn nằm trong cột C, bất cứ nơi nào trong bảng dữ liệu, khi bạn bắt đầu macro.

lngCompareColumn = ActiveCell.Column

Cuối cùng, macro phải biết có bao nhiêu hàng để lặp qua. Nó sử dụng ba biến, một cho số lượng hàng, một cho hàng đầu tiên và một biến cho hàng cuối cùng.

lngNumRows = rngRange.Rows.Count
lngFirstRow = rngRange.Row
lngLastRow = lngFirstRow + lngNumRows - 1

Vòng lặp

Chúng tôi muốn thực hiện một dòng mã duy nhất một lần cho mỗi hàng thông tin khách hàng trong bảng Excel. Để làm điều đó, chúng tôi sẽ sử dụng một vòng lặp, bắt đầu ở hàng cuối cùng và di chuyển lên hàng đầu tiên. Xử lý các hàng theo thứ tự ngược lại loại bỏ vấn đề tiềm năng là xóa một hàng, sau đó tiến sang hàng tiếp theo và thấy rằng các hàng đã thay đổi sau khi xóa.

For lngCurrentRow = lngLastRow To lngFirstRow Step -1
 If (Cells(lngCurrentRow, lngCompareColumn).Text = "FALSE") Then _
 Rows(lngCurrentRow).Delete
 Next lngCurrentRow

Đối với mỗi hàng, macro kiểm tra xem văn bản trong cột so sánh có sai hay không. Nếu vậy, sau đó nó xóa tài khoản. Sau đó, nó chuyển sang hàng tiếp theo (theo thứ tự ngược lại) cho đến khi nó thực hiện vòng lặp một lần cho mỗi hàng trong bảng.FALSE. If so, then it deletes the account. Then it moves on to the next row (in reverse order) until it has executed the loop once for each row in the table.

Hoàn thành macro

(Sao chép và dán thông tin vào các macro nhập được ghi mà bạn đã tạo.)

Đây là mã Excel đầy đủ, từ đầu đến cuối. Lưu ý rằng mã cuối cùng bao gồm các câu lệnh, nhận xét và câu lệnh DIM để tắt các bản cập nhật màn hình và bật lại ở cuối.

Sub DeleteRows()
 '
 ' Macro to delete rows where selected column is "FALSE"
 '
 Dim rngRange As Range
 Dim lngNumRows, lngFirstRow, lngLastRow, lngCurrentRow As Long
 Dim lngCompareColumn As Long
'Set the range to the current region around the selection point
 'Find the number of rows and the starting row based on the size of the region
 'Use the column of the current selection as the comparison column
Set rngRange = Selection.CurrentRegion
 lngNumRows = rngRange.Rows.Count
 lngFirstRow = rngRange.Row
 lngLastRow = lngFirstRow + lngNumRows - 1
 lngCompareColumn = ActiveCell.Column
'For faster execution, turn off the screen refresh
 Application.ScreenUpdating = False
'For each row, check to see if the comparison column is false. If so, delete it.
 For lngCurrentRow = lngLastRow To lngFirstRow Step -1
 If (Cells(lngCurrentRow, lngCompareColumn).Text = "FALSE") Then _
 Rows(lngCurrentRow).Delete
 Next lngCurrentRow
'Turn the screen updates back on
 Application.ScreenUpdating = True
lngCompareColumn = ActiveCell.Column
0

Để chạy macro, làm nổi bật cột nội dung đúng/sai và chạy macro bằng cách chọn đoạn cắt ngắn bạn đã nhập khi bạn tạo nó. .

Sau khi hoàn thành macro Excel này, Kế toán Biến hình hiện chỉ có một bảng tài khoản khách hàng hiện tại. Nó dễ đọc hơn, và không có thông tin không liên quan. Bằng cách này, bạn có thể sử dụng các macro Excel để tổ chức thông tin hiệu quả để làm cho cuộc sống của bạn thoải mái hơn một chút.

Pryor+ 7 ngày đào tạo miễn phí


Các khóa học về dịch vụ khách hàng, Excel, HR, Lãnh đạo, OSHA và nhiều hơn nữa. Không có thẻ tín dụng. Không có cam kết. Cá nhân và đội.