删除除具有特定标题的列以外的所有列

Mal*_*kav 6 excel vba excel-vba

我正在尝试格式化导出的数据,需要删除多个列.我想保留某些标题的列.为方便起见,如果我有15列,并希望保留具有以下标题的列;

州城市名称客户产品

我担心的是,我导出的数据可以更改,并且可以在将来添加列.我希望能够过滤掉不需要的列,并保留上述列.

编辑:我正在使用Excel,我以前从未写过一行代码.永远.

Dav*_*ens 13

试试这个吧.

以相反的顺序迭代列,检查Select Case中的标题,并根据需要删除.

Sub deleteIrrelevantColumns()
    Dim currentColumn As Integer
    Dim columnHeading As String

    ActiveSheet.Columns("L").Delete

    For currentColumn = ActiveSheet.UsedRange.Columns.Count To 1 Step -1

        columnHeading = ActiveSheet.UsedRange.Cells(1, currentColumn).Value

        'CHECK WHETHER TO KEEP THE COLUMN
        Select Case columnHeading
            Case "State", "City", "Name", "Client", "Product"
                'Do nothing
            Case Else
                'Delete if the cell doesn't contain "Homer"
                If Instr(1, _
                   ActiveSheet.UsedRange.Cells(1, currentColumn).Value, _
                   "Homer",vbBinaryCompare) = 0 Then

                    ActiveSheet.Columns(currentColumn).Delete

                End If
        End Select
    Next

End Sub
Run Code Online (Sandbox Code Playgroud)