Triển khai Macro VBA là phương pháp hiệu quả nhất, nhanh nhất và an toàn nhất để chạy bất kỳ hoạt động nào trong Excel. Trong bài viết này, chúng tôi sẽ hướng dẫn bạn cách xóa cột dựa trên tiêu chí trong Excel với macro VBA .
Tải xuống Workbook
Bạn có thể tải xuống sổ làm việc Excel thực hành miễn phí từ đây.
Cú pháp chung
Cú pháp chung để xóa cột trong Excel bằng VBA là,
Cột (số cột / địa chỉ cột) .Xóa
8 Ví dụ với VBA Macro để xóa cột dựa trên tiêu chí trong Excel
Trong phần này, bạn sẽ tìm hiểu cách xóa các cột dựa trên giá trị ô, dựa trên một trang tính khác và dựa trên bảng có VBA macro trong Excel.
Chúng tôi sẽ sử dụng tập dữ liệu sau làm ví dụ.
Tiêu chí 1:VBA Macro để xóa cột dựa trên giá trị ô trong Excel
Các bước để xóa cột dựa trên giá trị ô trong Excel với VBA được đưa ra bên dưới.
Các bước:
- Nhấn Alt + F11 trên bàn phím của bạn hoặc chuyển đến tab Nhà phát triển -> Visual Basic để mở Visual Basic Editor .
- Trong cửa sổ mã bật lên, từ thanh trình đơn, nhấp vào Chèn -> Mô-đun .
- Sao chép mã sau và dán vào cửa sổ mã.
Sub DeleteColumnsBasedOnCellValue()
Dim iCol As Long
Dim iWrk As Long
iCol = 10
For iWrk = iCol To 1 Step -1
If Cells(1, iWrk) = 2 Then
Columns(iWrk).Delete
End If
Next
End Sub
Mã của bạn hiện đã sẵn sàng để chạy.
Mã này sẽ xóa các cột bắt đầu bằng giá trị ô 2 .
- Nhấn F5 trên bàn phím của bạn hoặc từ thanh trình đơn, chọn Run -> Run Sub / UserForm . Bạn cũng có thể chỉ cần nhấp vào biểu tượng Play nhỏ trong thanh menu phụ để chạy macro.
Kết quả được hiển thị bên dưới.
Các cột bắt đầu bằng giá trị ô 2 đã bị xóa.
Đọc thêm: VBA để xóa cột trong Excel
Tiêu chí 2:VBA Macro để xóa cột dựa trên ô trống trong Excel
Các bước để xóa cột có ô trống trong Excel với VBA được đưa ra bên dưới.
Các bước:
- Tương tự như trước đây, mở Visual Basic Editor từ Nhà phát triển và Chèn a Mô-đun trong cửa sổ mã.
- Trong cửa sổ mã, hãy sao chép và dán mã sau đây.
Sub DeleteBlankCells()
Range("A1:J10").Select '//range of the dataset
Selection.SpecialCells(xlCellTypeBlanks).Select
Selection.EntireColumn.Delete
End Sub
Mã của bạn hiện đã sẵn sàng để chạy.
- Chạy macro.
Tất cả các cột chứa ô trống đã bị xóa ngay bây giờ.
Tiêu chí 3:VBA Macro để xóa các cột trống trong Excel
Nhìn vào tập dữ liệu sau bao gồm các cột trống. Chúng tôi sẽ xem cách xóa các cột trống này trong Excel với VBA macro.
Các bước:
- Tương tự như trước đây, mở Visual Basic Editor từ Nhà phát triển và Chèn a Mô-đun trong cửa sổ mã.
- Trong cửa sổ mã, hãy sao chép và dán mã sau đây.
Sub DeleteBlankCol()
Dim i As Integer
For i = 1 To 4
Columns(i + 1).Delete
Next i
End Sub
Mã của bạn hiện đã sẵn sàng để chạy.
- Chạy macro.
Tất cả cột trống đã bị xóa.
Đọc thêm: Xóa các cột trống trong Excel
Tiêu chí 4:VBA Macro để loại bỏ các cột không liền kề trong Excel
Các bước để xóa nhiều cột không liền kề trong Excel với VBA được đưa ra bên dưới.
Các bước:
- Tương tự như trước đây, mở Visual Basic Editor từ Nhà phát triển và Chèn a Mô-đun trong cửa sổ mã.
- Trong cửa sổ mã, hãy sao chép và dán mã sau đây.
Sub DeleteNAdjCol()
Range("C:E, G:I").Delete
End Sub
Mã của bạn hiện đã sẵn sàng để chạy.
- Chạy macro.
Tất cả các cột trước đó từ C đến E (Tháng 2 đến Tháng 4) và G to I (Tháng 6 đến Tháng 8) đã bị xóa.
Bài đọc tương tự:
- Cách xóa các cột không sử dụng trong Excel (5 phương pháp dễ nhất)
- Xóa các cột trong Excel mà không ảnh hưởng đến công thức (Hai cách)
- Cách xóa các cột trùng lặp trong Excel (6 cách)
Tiêu chí 5:VBA Macro để xóa cột dựa trên trang tính cụ thể trong Excel
Các bước để xóa cột khỏi một trang tính cụ thể trong Excel với VBA được đưa ra bên dưới.
Các bước:
- Tương tự như trước đây, mở Visual Basic Editor từ Nhà phát triển và Chèn a Mô-đun trong cửa sổ mã.
- Trong cửa sổ mã, hãy sao chép và dán mã sau đây.
Sub DeleteColFromSheet()
Worksheets("New Column").Select '// set the sheet name
Columns("D:F").Delete
End Sub
Mã của bạn hiện đã sẵn sàng để chạy.
- Chạy macro.
Tất cả các cột trước đó từ D đến F (Tháng 3 đến Tháng 5) từ “ Cột mới ”Trang tính đã bị xóa.
Tiêu chí 6:VBA Macro để loại bỏ cột dựa trên bảng trong Excel
Các bước để xóa cột khỏi bảng trong Excel với VBA được đưa ra bên dưới.
Các bước:
- Tương tự như trước đây, mở Visual Basic Editor từ Nhà phát triển và Chèn a Mô-đun trong cửa sổ mã.
- Trong cửa sổ mã, hãy sao chép và dán mã sau đây.
Sub DeleteColTable()
Dim srcTable As ListObject
Dim srcSheet As Worksheet
'Set the table from which column is to be deleted
Set srcTable = ActiveSheet.ListObjects("ExTable")
'Set the sheet that contains the table
Set srcSheet = Sheet8
With srcSheet
srcTable.ListColumns(5).Delete
End With
End Sub
Mã của bạn hiện đã sẵn sàng để chạy.
- Chạy macro.
Cột 5 (Tháng 4) bị xóa khỏi bảng.
Tiêu chí 7:VBA Macro để loại bỏ nhiều cột dựa trên bảng trong Excel
Các bước để xóa nhiều cột từ một bảng trong Excel với VBA được đưa ra bên dưới.
Các bước:
- Tương tự như trước đây, mở Visual Basic Editor từ Nhà phát triển và Chèn a Mô-đun trong cửa sổ mã.
- Trong cửa sổ mã, hãy sao chép và dán mã sau đây.
Sub DeleteMColTable()
Dim srcTable As ListObject
Dim srcSheet As Worksheet
Dim i As Integer
'Set the table from which column is to be deleted
Set srcTable = ActiveSheet.ListObjects("ExTable2")
'Set the sheet that contains the table
Set srcSheet = Sheet9
'Run the loop twice as we need to delete 2 columns
For i = 1 To 2
With Source
srcTable.ListColumns(5).Delete
End With
Next i
End Sub
Mã của bạn hiện đã sẵn sàng để chạy.
- Chạy macro.
Cột 5 và 6 (Tháng 4 và Tháng 5) đã bị xóa khỏi bảng.
Đọc thêm: Cách xóa nhiều cột trong Excel
Tiêu chí 8:VBA Macro để xóa cột khỏi bảng dựa trên tiêu đề cột trong Excel
Các bước để xóa cột khỏi bảng dựa trên tiêu đề cột trong Excel với VBA được đưa ra bên dưới.
Các bước:
- Tương tự như trước đây, mở Visual Basic Editor từ Nhà phát triển và Chèn a Mô-đun trong cửa sổ mã.
- Trong cửa sổ mã, hãy sao chép và dán mã sau đây.
Sub DeleteColHeaderTable()
Dim srcTable As ListObject
Dim srcSheet As Worksheet
Dim i As Integer
Dim colName As String
'Set the table from which column is to be deleted
Set srcTable = ActiveSheet.ListObjects("ExTable3")
'Set the sheet that contains the table
Set srcSheet = Sheet10
'Case sensitive
colName = "Apr"
'Loop through all the columns in the table
For i = 1 To srcTable.ListColumns.Count
With srcSheet
'Check the column header
If srcTable.ListColumns(i).Name = colName Then
srcTable.ListColumns(i).Delete
Exit For
End If
End With
Next i
End Sub
Mã của bạn hiện đã sẵn sàng để chạy.
- Chạy macro.
Tiêu đề cột có tên là Tháng 4 bị xóa khỏi bảng.
Kết luận
Bài viết này đã hướng dẫn bạn cách xóa cột dựa trên 8 tiêu chí khác nhau trong Excel với macro VBA. Tôi hy vọng bài viết này rất hữu ích cho bạn. Vui lòng đặt bất kỳ câu hỏi nào liên quan đến chủ đề này.
Bạn cũng có thể thích khám phá
- Cách Xoá Nội dung trong Excel mà Không cần Xoá Công thức (3 Cách)
- Xóa các cột bổ sung trong Excel (7 phương pháp)