การใช้ VBA Macro เป็นวิธีที่มีประสิทธิภาพ เร็วที่สุด และปลอดภัยสำหรับการลบคอลัมน์ตามเงื่อนไขใน Excel
ไวยากรณ์ทั่วไป
Columns(column number/column address).Delete
8 ตัวอย่างลบคอลัมน์ตามเกณฑ์ด้วย VBA
ใช้ชุดข้อมูลตัวอย่างสำหรับทุกกรณี
เกณฑ์ 1: ลบคอลัมน์ตามค่าในเซลล์
ลบคอลัมน์ที่แถวแรกมีค่า = 2
Sub DeleteColumnsBasedOnCellValue()
Dim iCol As Long, iWrk As Long
iCol = 10
For iWrk = iCol To 1 Step -1
If Cells(1, iWrk) = 2 Then Columns(iWrk).Delete
Next
End Sub
เกณฑ์ 2: ลบคอลัมน์ที่มีเซลล์ว่าง
Sub DeleteBlankCells()
Range("A1:J10").Select
Selection.SpecialCells(xlCellTypeBlanks).Select
Selection.EntireColumn.Delete
End Sub
เกณฑ์ 3: ลบคอลัมน์ที่ว่างทั้งคอลัมน์
Sub DeleteBlankCol()
Dim i As Integer
For i = 1 To 4
Columns(i + 1).Delete
Next i
End Sub
เกณฑ์ 4: ลบคอลัมน์ที่ไม่ติดกัน (Non-Adjacent)
Sub DeleteNAdjCol()
Range("C:E, G:I").Delete
End Sub
เกณฑ์ 5: ลบคอลัมน์จากแผ่นงานเฉพาะ
Sub DeleteColFromSheet()
Worksheets("New Column").Select
Columns("D:F").Delete
End Sub
เกณฑ์ 6: ลบคอลัมน์จากตาราง (Table)
Sub DeleteColTable()
Dim srcTable As ListObject, srcSheet As Worksheet
Set srcTable = ActiveSheet.ListObjects("ExTable")
Set srcSheet = Sheet8
With srcSheet
srcTable.ListColumns(5).Delete
End With
End Sub
เกณฑ์ 7: ลบหลายคอลัมน์จากตาราง
Sub DeleteMColTable()
Dim srcTable As ListObject, srcSheet As Worksheet, i As Integer
Set srcTable = ActiveSheet.ListObjects("ExTable2")
Set srcSheet = Sheet9
For i = 1 To 2
With srcSheet
srcTable.ListColumns(5).Delete
End With
Next i
End Sub
เกณฑ์ 8: ลบคอลัมน์จากตารางตามชื่อหัวคอลัมน์
Sub DeleteColHeaderTable()
Dim srcTable As ListObject, srcSheet As Worksheet, i As Integer, colName As String
Set srcTable = ActiveSheet.ListObjects("ExTable3")
Set srcSheet = Sheet10
colName = "Apr"
For i = 1 To srcTable.ListColumns.Count
With srcSheet
If srcTable.ListColumns(i).Name = colName Then
srcTable.ListColumns(i).Delete
Exit For
End If
End With
Next i
End Sub
สรุป
8 วิธีลบคอลัมน์ด้วย VBA ตามเกณฑ์ต่างๆ: ค่าเซลล์, เซลล์ว่าง, คอลัมน์ว่าง, ไม่ติดกัน, แผ่นงานเฉพาะ, ตาราง, หลายคอลัมน์ในตาราง, และชื่อหัวคอลัมน์
อ่านเพิ่มเติม
- ล้างเนื้อหาโดยไม่ลบสูตร (3 วิธี)
- ลบคอลัมน์เกิน (7 วิธี)