使用列号删除多个列

Jay*_*Jay 4 excel vba excel-vba

只是想分享,因为我在网上寻找方法遇到了很多麻烦,并最终通过一系列的试验和错误得到了它.

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

这将删除列11到100.

Sid*_*out 7

更多方法

删除连续列,如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
Run Code Online (Sandbox Code Playgroud)

删除非连续列,如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
Run Code Online (Sandbox Code Playgroud)


Jay*_*Jay 5

With Sheet1
    .Range(.Cells(1, 11), .Cells(1, 100)).EntireColumn.Delete
End With
Run Code Online (Sandbox Code Playgroud)