我正在寻找一种方法来根据另一个单元格中的值清除某个单元格的内容:
Private Sub Worksheet_Change2(ByVal Target As Range)
If Range("AL4").Value = 1 Then
Range("AK15").Select
Selection.ClearContents
If Range("AL4").Value = 2 Then
Range("AK15").Select
Selection.ClearContents
End Sub
这有点不起作用,有什么想法吗?
答案 0 :(得分:2)
您的代码存在一些问题:
Worksheet_Change2
是您的代码的名称,与Worksheet_Change
无法使用您不使用Target
来定义要检查更改的范围。
将If Range("AL4").Value = 1
更改为:
If not Intersect(Target, Range("AL4")) Is Nothing Then
If Range("AL4").Value = 1 or Range("AL4").Value = 2 Then
Range("AK15") = ""
End If
End if
使用此检查进行更改,您可以在现有的Worksheet_Change
模块中实现它,并且只在单元格AL4的值发生更改时才触发此模块。
如果您想了解工作表更改事件,建议您从ozgrid.com
阅读此页面答案 1 :(得分:1)
您的代码中存在一些问题:
总结为
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If Range("AL4").Value = 1 Then
Range("AK15").ClearContents
End If
If Range("AL4").Value = 2 Then
Range("AK15").ClearContents
End If
Application.EnableEvents = True
End Sub
答案 2 :(得分:0)
下面应该解决你想要实现的目标
If Range("AL4").Value = 1 Or 2 Then
Range("AK15") = ""
End If
或
If Range("AL4").Value = 1 Or 2 Then
Range("AK15").ClearContents
End If
您想尝试不使用SELECT功能,因为它会大大减慢处理速度