我正在 Excel 中处理数据清理项目,并努力构建一个宏来清理和删除报表中不必要的列。
我有问题在列中循环以删除不具有某些标题文本的列(我有3个单独的字符串,我希望找到而不是删除)。
我找到了一个帮助我开始的先前问题Here。
如何扩展此代码以考虑多个字符串?
我尝试的代码如下。
import 'react-big-calendar/lib/addons/dragAndDrop/styles.css';
谢谢!
答案 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