删除循环中行的选定段

时间:2015-01-27 16:39:43

标签: excel vba loops excel-vba excel-2010

我有一个非常大的电子表格(一直到Cell BP584 )。我正在尝试遍历从S开始的行S中的值,并且 - 它们匹配我指定的变量值 - 删除它们找到的区域中的某些单元格。我只想删除从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

1 个答案:

答案 0 :(得分:1)

你非常接近,它只是在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,这样您就不必担心会改变单元格位置。