繁体   English   中英

VBA:根据单元格值自动清除整行

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM