ad

《Excel VBA跟卢子一起学早做完,不加班(实战进阶版)》_提升工作效率_1.8 数据有效性:Ualldofion

网友投稿 54 2023-11-07

【摘要】 本书摘自《Excel VBA跟卢子一起学早做完,不加班(实战进阶版)》一书中第1章,第8节,陈锡卢、李应钦著。

1.8 数据有效性:Ualldofion

为了让用户输入特定的信息内容,在Excel界面上会运用数据有效性功能(2013版本起称 为“数据验证”),在VBA 中数据有效性对应Validation 对象。本节讲解有关 Validation 对象 的 方 法 和 属 性 等 成 员 , 如 表 1 - 1 7 所 示 。

创建数据有效性: Validation.Add 方法*

在VBA 中创建一个实例都必需使用Add 方法, Validation 对象也不例外。因此,创建一 个新的数据有效性时必需使用Validation.Add 方法,其语法和参数说明(见表1-18)如下。

无言:Validation.Add方法中的Type、Formula1参数是2个常用参数,分别如图1-27中显示的 位置。现在手上有 一 份食堂用的分类及食物清单,现在我们要根据这份清单分列在B列 标 题 后 创

建 分 类 的 数 据 有 效 性 ,C 列标题后创建 一 个食物的名称数据有效性。具体过程如代码1- 35所示。

《Excel VBA跟卢子一起学早做完,不加班(实战进阶版)》_提升工作效率_1.8 数据有效性:Ualldofion

(1)代码1-35示例过程创建了2个数据有效性,其中 FI_Rng和 Fd_Rng 两个变量为指定 做作为数据有效性序列的引用单元格,即 Formulal 参数的赋值; Max_R 变量则获取指定区域 的行数量。

(2)Cells(2,2).Resize(Max_R -1,1).Validation 语句在B 列的有效范围设置数据有效性对 象,然后先通过Validation.Delete 方法清除原来区域的数据有效性设置,再使用Validation.Add 创建B 列范围内的数据有效性。

(3).Add Type:=XIValidateList,Formula1:="="&Fl_Rng.Address 语句中Type 参数赋值为 XIValidateList,代表创建的是序列类型的数据有效性,Type 参数的类型可以查阅 XIDVType 常 量或如表1-19所示;Formula1 参数如果引用单元格或者自定义名称时,都必需用等号连接, 其中 Fl_Rng.Address 为分列引用的原始数据单元格区域的文本。后面第2段创建食物名称的数 据有效性与第1段的类似,只是Fd_Rng 的原始区域不同而已,最终效果如图1-28所示。

设置Validation对象,只有当Operator常量设置为 XIBetween或 XINotBetween 时,才会出 现 Formula2参数,即只有设置了区间(介于或不介于)才需要Formula2参数。

无言:现在设置一个数量区间,让用户只能填入在该区间内的数值,否则将提示错 误。具体示例过程如代码1-36所示。

代码1-36 设置食物数量的区间值

001|Sub Food_Add_Between)

002| Dim Max_RAs Long,Qj1 As Integer,Qj2 As Integer

003| With Worksheets(1)

004| Max_R=.Cells(1).CurrentRegion.Rows.Count

005| Qj1=Application.InputBox(“请输入需要输入第1个区间的值,不等小于0”,”区间1",0,Type:=1)

006| Qi2=Application.InputBox(“请输入需要输入第2个区间的值,该值必须大于区间1的值”,"区间2",

Type:=1)

007| IfQj1<0 OrQj2<=Qj1 OrQj2<0 Then Exit Sub

008| With Cells(2,4).Resize(Max_R-1,1).Validation

009| .Delete

010| .Add Type:=xIValidateWholeNumber,_

011| Operator:=xIBetween,

0121 Formula1:=Qj1,_

013| Formula2:=Qj2,

014| AlertStyle:=xIValidAlertWarning

0151 .InCellDropdown =True

016| .ShowInput =Truc

0171 .InputTitle="区间信息提示"

018| .InputMessage="输入数字必须在"&Qjl&"."&Qj2& “之间。”

019 .ShowError =True

020| .ErrorTitle="输入区间错误"

021 .ErrorMessage=“您输入的数字不在允许区间,请重新输入!”

022| End With

023| End With

024|End Sub

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

上一篇:《Excel VBA+SQL数据管理与应用模板开发》_工作效率UP!_7.5 付款管理
下一篇:《Excel VBA跟卢子一起学早做完,不加班(实战进阶版)》_提升工作效率_2.6 当单元格内容或链接改变时触发事件
相关文章

 发表评论

暂时没有评论,来抢沙发吧~

×