如何实现数据有效性列表项同步更新?

网友投稿 523 2022-10-18

如何实现数据有效性列表项同步更新?

Q:如图1所示,在单元格C1中设置了数据有效性,列表数据来源于单元格区域A1:A3。这里,将单元格区域A1:A3命名为testData?

图1

然而,当我修改了单元格区域A1:A3中的数据后,单元格C1中的数据不会自动相应修改,如图2所示。

图2

如何实现数据源中的数据修改后,设置了数据有效性的单元格中的数据相应地自动修改?

A:下面使用工作表的Change事件来实现,代码如下:

Private SubWorksheet_Change(ByVal Target As Range)

Dim rng As Range

Dim rngFound As Range

‘当名称为testData的区域数据改变时

If Not Intersect(Target,Me.Range(“testData”)) Is Nothing Then

‘遍历工作表中的数据有效性单元格

For Each rng InMe.Cells.SpecialCells(xlCellTypeAllValidation).Cells

‘如果单元格中的数据有效性设置为区域testData

If rng.Validation.Formula1 =”=testData” Then

‘检查该单元格中的值是否在区域testData列表值中

Set rngFound =Me.Range(“testData”).Find(rng.Value, , xlValues, xlWhole)

‘如果值不在列表中,命名区域中的数据一定被修改了,因此单元格值进行相应的修改

If rngFound Is Nothing Then

Application.EnableEvents =False

rng.Value = Target.Value

Application.EnableEvents =True

End If

End If

Next rng

End If

End Sub

运行后的效果如下图3所示。

图3

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:wps怎么制作空心虚点效果的文字?
下一篇:WPS图形怎么置于文字下方?
相关文章