删除包含特定数据的Excel VBA中的完整行

我试图删除第一个单元格中包含值“THD”的完整行。 内容可能看起来像“THD_C_L10.0W5.0H15.0P7.5”,但THD总是在那里。

我试着用下面的循环:

For i = 1 To ActiveSheet.UsedRange.Rows.Count If InStr(1, LCase(Tabelle2.Cells(i, 1)), "THD") <> 0 Then Rows(i).EntireRow.Delete End If Next 

但不幸的是,它不工作。 有任何想法吗?

当你删除行,你必须从最后一个元素开始你的循环,并直接进入第一个。 因此,而不是:

 For i = 1 To ActiveSheet.UsedRange.Rows.Count 

你应该有这样的东西:

 For i = ActiveSheet.UsedRange.Rows.Count to 1 Step -1 

一个额外的提示,不应该影响你当前的子InStr有额外的参数,你可以使用。 这一行相当于你的一行:

 If InStr(1, Tabelle2.Cells(i, 1), "THD",vbTextCompare) <> 0 Then