VBA代码用于删除包含具有函数Cells的特定string的列
我正在编写一个代码来摆脱在单元格中包含特定string的列。 代码如下:
Dim i As Integer Dim j As Integer Dim state As String Dim num As Variant num = InputBox("Enter the state", "What stx is it?", "Enter x here") 'the & will combine them together state = "st" & num With ActiveSheet.UsedRange 'Uses all the columns in use due to the previous line For j = 2 To .Columns.Count If .Cells(2, j).Formula = state Then 'Do nothing Else Range(.Cells(1, j), .Cells(.Rows.Count, j)).Delete Shift:=xlToLeft End If Next j End With End Sub
我从j=2
开始,因为我不想擦除第一列。 这是我想要修改的数据片段。 但是,这不会删除包含特定单元格的所有列。 令我感到困惑的是,如果我更换
Range(.Cells(1, j), .Cells(.Rows.Count, j)).Delete Shift:=xlToLeft
同
Range(.Cells(1, j), .Cells(.Rows.Count, j)).Interior.ColorIndex = 6
它正确地突出显示所有我想要删除的单元格。
当用一个循环删除行时,你应该总是向后运行,因为当你删除一行时,j增加1,意味着你跳过一行。
更换
For j = 2 To .Columns.Count
对于
For j = .Columns.Count To 2 Step -1