我已经搜索过这方面的答案,但找不到任何特定于我需要的东西。我正在创建一个包含多行需要具有相同功能的工作表。例如,在第2行 - 我需要D2:F2的内容来清除B2中的值是否改变。
我找到了一个适用于那个实例的VBA代码。但是,我还需要在第6行,第10行,第14行等中使用相同的功能 - 每第4行直到第118行共30行。
每一行都必须是独占的。如果我更改B2中的值,我不希望它清除其他行中的值 - 只有第2行。如果我更改B6中的值,我只想在第6行中更改值...并且等等。
这是我用于B2的代码,但我不确定它是否可以针对更多行进行修改,或者我是否需要完全不同的代码。
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("B2")) Is Nothing Then
Range("D2:F2").ClearContents
End If
End Sub
请指教 - 谢谢!
答案 0 :(得分:1)
您可以使用MOD
:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Row > 118 Then Exit Sub
If Target.Row Mod 4 = 2 And Not Intersect(Target, Cells(Target.Row, 2)) Is Nothing Then
Range("D" & Target.Row & ":F" & Target.Row).ClearContents
End If
End Sub
答案 1 :(得分:1)
首先将Target.Row
限制在2到118之间。
其次,使用Mod
仅检查第4行。
尝试类似下面的代码:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Row >= 2 And Target.Row <= 118 Then
If (Target.Row + 2) Mod 4 = 0 Then
If Target.Column = 2 Then
Target.Offset(, 2).Resize(1, 3).ClearContents
End If
End If
End If
End Sub