打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
使用VBA遍历数据验证列表中的每一项
userphoto

2023.05.04 四川

关注

excelperfect

标签:VBA数据验证
想要遍历数据验证列表中的每一项,如何编写VBA代码呢?如果数据验证列表中的项值来源于单元格区域或者命名区域,则很简单,遍历该区域即可。然而,有些数据验证列表是直接使用逗号分隔的项添加的,这就需要使用不同的方法。
数据验证设置基于下面的4种方法:
1.单元格引用,如下图1所示。
1
2.命名区域,如下图2所示。
2
3.溢出单元格区域,如下图3所示。
3
4.逗号分隔的列表,如下图4所示。
4
下面的代码适用于上述4种情形,遍历数据验证列表中的每项:
Option Explicit
Sub LoopThroughDataValidationList() Dim rng As Range Dim varDataValidation As Variant Dim i As Integer Dim iRows As Integer '设置包含数据验证列表的单元格 Set rng = Sheets('Sheet1').Range('C1') '如果数据验证列表不是单元格区域则忽略错误 On Error Resume Next '从数据验证公式创建数组,而不是从单元格区域创建多维数组 iRows = Range(Replace(rng.Validation.Formula1, '=''')).Rows.Count ReDim varDataValidation(1 To iRows)  For i = 1 To iRows   varDataValidation(i) = Range(Replace(rng.Validation.Formula1, '=''')).Cells(i, 1) Next i '如果不是单元格区域,则尝试拆分字符串 If Err.Number <> 0 Then Err.Clear   varDataValidation = Split(rng.Validation.Formula1, ',') End If '如果发生其它错误则退出 If Err.Number <> 0 Then Exit Sub '恢复错误检查 On Error GoTo 0 '遍历数据验证数组中所有值 For i = LBound(varDataValidation) To UBound(varDataValidation) '修改数据有效性单元格中的值 rng.Value = varDataValidation(i) '强制工作表重新计算 Application.Calculate '在此插入为操作每个项的代码 Next iEnd Sub
你可以根据实际情况,修改代码中数据验证所在的单元格,还可以添加代码来处理数据验证中的每个项值。
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
完全手册Excel VBA典型实例大全:通过368个例子掌握
遍历选中区域的单元格
VBA入门27:SpecialCells方法
《神奇的VBA》编程:批量拆分单元格数据
在Excel中粘贴时怎样跳过隐藏行
Excel VBA 8.15 批量取消单元格合并 并自动补全
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服