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

Delete a selected segment of a row within a loop

我有一个很大的电子表格(一直到 Cell BP584)。我试图遍历 S 行中从 S5 开始的值,并且 - 在它们与我指定的变量值匹配的地方 - 删除它们所在区域中的某些单元格。我只想删除从 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,这样您就不必担心移动单元格位置。