Excel 工作表\u数据验证值的更改
我正在使用工作表更改以清除特定单元格上的内容。正在评估更改的单元格为“A10”。此值来自数据验证列表。我注意到,当这个单元格中有一个值时,我单击下拉列表,即使我从这个列表中重新选择了相同的值,也会执行清除内容。有没有办法避免这种情况?我担心这张表的用户会想查看下拉列表中的选项,但最终会保留原来的A10值,并且仍然会丢失其他单元格的内容 代码如下:Excel 工作表\u数据验证值的更改,excel,validation,vba,Excel,Validation,Vba,我正在使用工作表更改以清除特定单元格上的内容。正在评估更改的单元格为“A10”。此值来自数据验证列表。我注意到,当这个单元格中有一个值时,我单击下拉列表,即使我从这个列表中重新选择了相同的值,也会执行清除内容。有没有办法避免这种情况?我担心这张表的用户会想查看下拉列表中的选项,但最终会保留原来的A10值,并且仍然会丢失其他单元格的内容 代码如下: Private Sub Worksheet_Change(ByVal Target As Range) Dim rang As Range Se
Private Sub Worksheet_Change(ByVal Target As Range)
Dim rang As Range
Set rang = Worksheets("Sheet1").Range("A10")
If Not Intersect(Target, rang) Is Nothing Then
Worksheets("Sheet1").Range("B10:B50000", "C10:C50000").ClearContents
End If
End Sub
提前谢谢 这里是宏的一个版本,它跟踪A10中的旧值 如果没有做出任何真正的更改,它就会消失:
Dim OldValue As Variant
Private Sub Worksheet_Change(ByVal Target As Range)
Dim rang As Range
Set rang = Worksheets("Sheet1").Range("A10")
If IsEmpty(OldValue) Then
OldValue = rang.Value
Exit Sub
End If
If Not Intersect(Target, rang) Is Nothing Then
If OldValue = rang.Value Then
Exit Sub
End If
OldValue = rang.Value
Application.EnableEvents = False
Worksheets("Sheet1").Range("B10:B50000", "C10:C50000").ClearContents
Application.EnableEvents = True
End If
End Sub
因为OldValue在sub上方被设置为DIM'strong>,所以它的值在调用之间被保留