我有一个非常大的电子表格(一直到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
答案 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
,这样您就不必担心会改变单元格位置。