[英]VBA: Clearing an entire row based on a cell value automatically
本质上,我有一个宏,当在B列的单元格中输入值时,它会更新其他列中的其余信息。 当我删除BI列中的值时,希望删除其他列中的其余信息。
我正在使用的代码类似于以下内容:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim KeyCells As Range
Set KeyCells = Range("B:B")
If Not Application.Intersect(KeyCells, Range(Target.Address)) _
Is Nothing Then
If Range(Target.Address).Value = "X" Then
Range(Target.Address).Offset(0, 1).Value = "1"
Range(Target.Address).Offset(0, 2).Value = "2"
Range(Target.Address).Offset(0, 3).Value = "3"
Range(Target.Address).Offset(0, 4).Value = "4"
End If
EndIf
End Sub
很长的路要走另一个if语句:
If Range(Target.Address).Value = "" Then
Range(Target.Address).Offset(0, 1).Value = ""
Range(Target.Address).Offset(0, 2).Value = ""
Range(Target.Address).Offset(0, 3).Value = ""
Range(Target.Address).Offset(0, 4).Value = ""
End If
由于宏会自动运行,因此可以完成此工作。 有没有办法用clear.contents做到这一点?
所以这是我应该做的:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 2 Then
If Target.Value = "x" Then
Target.Offset(0, 1) = "1"
Target.Offset(0, 2) = "2"
Target.Offset(0, 3) = "3"
Target.Offset(0, 4) = "4"
Else
Range(Target.Offset(0, 1), Target.Offset(0, 4)).ClearContents
End If
End If
End Sub
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.