当前位置:首页教育技巧office技巧office知识

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

减小字体 增大字体 2025-12-09 09:23:28


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

评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分)

【免责声明】本站信息来自网友投稿及网络整理,内容仅供参考,如果有错误请反馈给我们及时更正,对文中内容的真实性和完整性本站不提供任何保证,不承但任何责任。
版权所有:学窍知识网 Copyright © 2011-2026 www.at317.com All Rights Reserved .