你能帮我解决一下这个问题:
我有 A9:G15
范围内的数据,在 A9:G9
包含 Headers 的表中设置 .
我正在使用一个宏,一旦 $A$10
被清除或更改,清除 B10:G15
范围内相邻列的一些相邻单元格 . 但是,宏似乎只清除范围 B10:G10
中的相邻单元格,同时保留 B11:B15
范围内的数据未清除 . 这是因为我没有清除 A11:A15
中的单元格,因为我不希望用户在Range A11:A15
中输入数据 . 这是我正在使用的宏:
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If Not Intersect(Target, Range("$A10:A15")) Is Nothing Then
Target.Offset(0, 1).ClearContents
Target.Offset(0, 2).ClearContents
Target.Offset(0, 3).ClearContents
Target.Offset(0, 4).ClearContents
ElseIf Not Intersect(Target, Range("B10:B15")) Is Nothing Then
Target.Offset(0, 1).ClearContents
Target.Offset(0, 2).ClearContents
Target.Offset(0, 3).ClearContents
ElseIf Not Intersect(Target, Range("C10:C15")) Is Nothing Then
Target.Offset(0, 1).ClearContents
Target.Offset(0, 2).ClearContents
ElseIf Not Intersect(Target, Range("D10:D15")) Is Nothing Then
Target.Offset(0, 1).ClearContents
End If
End Sub
为了解决这个问题,我在 A11:A15
IF($A$10="","", $A$10)
的单元格中输入了这个公式,并将 A11:A15
的字体设置为灰色,填充为灰色,这样用户就不会在这些单元格中看到重复,因此他们知道他们不应该在这些单元格中输入数据 .
但是,似乎上面使用的宏不能识别 A11:A15
中的“”(由公式返回)作为清除 A11:A15
中任何单元格的行为 .
请注意,我需要将宏应用于稍后插入表中的任何新行 .
伙计们,请告诉我 .
非常感谢
1 回答
"" 在Excel中不被视为 Nothing ,我认为这是问题所在 . 您可以尝试相应地更改VBA中的
IF
条件吗?EDIT:
你能尝试改变下面的部分
至