繁体   English   中英

如果单元格A为空,则清除B列的单元格-RANGE

[英]Clear the cell of column B if cell A is empty - RANGE

遇到问题并寻求建议。 我已经在Excel中使用以下代码一段时间,如果单元格A为空,它将清除列B的内容。 它很好用,但是我现在需要它在特定范围内工作(A6:B35)。 有任何想法吗?

Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Target.Column = 1 Then
If Target.Validation.Type = 3 Then
Application.EnableEvents = False
Target.Offset(0, 1).ClearContents
End If
End If

exitHandler:
Application.EnableEvents = True
Exit Sub

End Sub

您需要测试活动单元格(目标)是否在A6:A35范围内。 像这样:

Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If not intersect(target, range("A6:A35")) is nothing then
   If Target.Validation.Type = 3 Then
      Application.EnableEvents = False
      Target.Offset(0, 1).ClearContents
      Application.EnableEvents = True
   End If
End if
exitHandler:

End Sub

您还应该缩进代码,使其更具可读性。 它将有助于循环和IF语句。

就像是

Private Sub Worksheet_Change(ByVal Target As Range)
Dim rng1 As Range
Dim rng2 As Range

Set rng1 = Intersect(Target, Range("A6:B35"))

If rng1 Is Nothing Then Exit Sub

Application.EnableEvents = False
For Each rng2 In rng1
    If rng2.Validation.Type = 3 Then rng2.Offset(0, 1).ClearContents
Next
Application.EnableEvents = True

End Sub

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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