在循环中删除一行中选定的一段

我有一个相当大的电子表格(一直到单元格BP584 )。 我试图从S5开始循环S行中的值,并且 – 它们匹配我指定的variables值 – 删除find的区域中的某些单元格。 我只想从列P中删除单元格到AG – 而不是整行。 我把我的代码放在下面(VBA)。 这不起作用。

Sub DeleteSelect() Sheets("DADOS").Select Dim CurrentDate As Date CurrentDate = Range("AH2").Value For i = 5 To 105 If Range("S" & i).Value = CurrentDate Then Range("Pi:AGi").Delete Next End Sub 

你非常接近,它看起来像你的Delete语句中的语法错误:

 Sub DeleteSelect() Sheets("DADOS").Select Dim CurrentDate As Date CurrentDate = Range("AH2").Value For i = 5 To 105 If Range("S" & i).Value = CurrentDate Then ' Caution - Delete will shift cells. ' You might want to consider ClearContents instead. Range("P" & i & ":AG" & i).Delete(xlShiftToLeft) End If Next End Sub 

如上面的代码所述,您可能需要考虑使用ClearContents而不是Delete因此您不必担心移动单元格的位置。