Delete multiple columns using column numbers

2020-03-04 03:07发布

Just wanted to share as I had huge amount of trouble looking for ways to do this online and have finally gotten it through series of trial and error.

Sheet1.Range(Cells(1, 11), Cells(1, 100)).EntireColumn.Delete

This deletes columns 11 to 100.

2条回答
【Aperson】
2楼-- · 2020-03-04 03:24
With Sheet1
    .Range(.Cells(1, 11), .Cells(1, 100)).EntireColumn.Delete
End With
查看更多
Anthone
3楼-- · 2020-03-04 03:32

More ways

Deleting consecutive columns like 1 - 100

Sub Sample()
    With Sheet1
        'A:CV
        .Columns(ReturnName(1) & ":" & ReturnName(100)).Delete Shift:=xlToLeft
    End With
End Sub

'~~> Returns Column Name from Col No
Function ReturnName(ByVal num As Integer) As String
    ReturnName = Split(Cells(, num).Address, "$")(1)
End Function

Deleting non consecutive columns like 1, 3, 5

Sub Sample()
    With Sheet1
        'A:A,C:C,E:E
        .Range( _
                ReturnName(1) & ":" & ReturnName(1) & "," & _
                ReturnName(3) & ":" & ReturnName(3) & "," & _
                ReturnName(5) & ":" & ReturnName(5) _
               ).Delete Shift:=xlToLeft
    End With
End Sub

Function ReturnName(ByVal num As Integer) As String
    ReturnName = Split(Cells(, num).Address, "$")(1)
End Function

'**Another way**

Sub Sample()
    Dim Rng As Range

    With Sheet1
        Set Rng = Union(.Columns(1), .Columns(3), .Columns(5))
    End With

    Rng.Delete Shift:=xlToLeft
End Sub
查看更多
登录 后发表回答