Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> ซอฟต์แวร์ >> Office

8 VBA Macro ลบคอลัมน์ Excel ตามเงื่อนไข: เร็ว ปลอดภัย

การใช้ 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 วิธี)