删除不具有特定字符串的列

时间:2018-06-11 18:24:50

标签: vba excel-vba excel

我正在 Excel 中处理数据清理项目,并努力构建一个宏来清理和删除报表中不必要的列。

我有问题在列中循环以删除不具有某些标题文本的列(我有3个单独的字符串,我希望找到而不是删除)。

我找到了一个帮助我开始的先前问题Here

如何扩展此代码以考虑多个字符串?

我尝试的代码如下。

import 'react-big-calendar/lib/addons/dragAndDrop/styles.css';

谢谢!

1 个答案:

答案 0 :(得分:3)

您无法在Or中嵌入InStr语句 - 您必须使用多个InStr来测试您的列。此外,由于您要删除包含字符串的列,因此您需要检查InStr是否返回值大于零,不等于:

Sub Test()

Dim currentColumn As Integer
Dim columnHeading As String

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 "Account Name", "Account ID", "Contract ID", "Delivery Date"
            'Do nothing
        Case Else
            'Delete if the cell doesn't contain "string-"
            If InStr(columnHeading, "string1-") = 0 And _
               InStr(columnHeading, "string2-") = 0 And _
               InStr(columnHeading, "string3-") = 0 Then

                ActiveSheet.Columns(currentColumn).Delete

            End If

    End Select
Next

End Sub