Deleting all columns except columns with certain headings

后端 未结 3 1332
醉酒成梦
醉酒成梦 2020-12-30 13:11

I am trying to format exported data and need to delete several columns. I want to keep columns with certain headings. For convenience if I have 15 columns and want to keep c

3条回答
  •  谎友^
    谎友^ (楼主)
    2020-12-30 13:54

    I'm guessing we're talking Excel here. If so iterating through your columns with a while loop and deciding to keep or not to keep should do the trick.

    Sub deleteIrrelevantColumns()
        Dim keepColumn As Boolean
        Dim currentColumn As Integer
        Dim columnHeading As String
    
        currentColumn = 1
        While currentColumn <= ActiveSheet.UsedRange.Columns.Count
            columnHeading = ActiveSheet.UsedRange.Cells(1, currentColumn).Value
    
            'CHECK WHETHER TO KEEP THE COLUMN
            keepColumn = False
            If columnHeading = "State" Then keepColumn = True
            If columnHeading = "City" Then keepColumn = True
            If columnHeading = "Name" Then keepColumn = True
            If columnHeading = "Client" Then keepColumn = True
            If columnHeading = "Product" Then keepColumn = True
    
    
            If keepColumn Then
            'IF YES THEN SKIP TO THE NEXT COLUMN,
                currentColumn = currentColumn + 1
            Else
            'IF NO DELETE THE COLUMN
                ActiveSheet.Columns(currentColumn).Delete
            End If
    
            'LASTLY AN ESCAPE IN CASE THE SHEET HAS NO COLUMNS LEFT
            If (ActiveSheet.UsedRange.Address = "$A$1") And (ActiveSheet.Range("$A$1").Text = "") Then Exit Sub
        Wend
    
    End Sub
    

提交回复
热议问题