vba技巧12 单元格中的数据有效性

vba技巧12 单元格中的数据有效性

ID:11154656

大小:26.78 KB

页数:5页

时间:2018-07-10

vba技巧12   单元格中的数据有效性_第1页
vba技巧12   单元格中的数据有效性_第2页
vba技巧12   单元格中的数据有效性_第3页
vba技巧12   单元格中的数据有效性_第4页
vba技巧12   单元格中的数据有效性_第5页
资源描述:

《vba技巧12 单元格中的数据有效性》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、技巧1单元格中的数据有效性1-1在单元格中建立数据有效性在单元格中建立数据有效性可以使用Add方法,如下面的代码所示。#001SubValidation()#002WithRange("A1:A10").Validation#003.Delete#004.AddType:=xlValidateList,_#005AlertStyle:=xlValidAlertStop,_#006Operator:=xlBetween,_#007Formula1:="1,2,3,4,5,6,7,8"#008EndWith#009EndSub代码解析:使用A

2、dd方法在A1:A10单元格中建立数据有效性。第3行代码删除已建立的数据有效性,防止代码运行出错。第4行到第7行代码使用Add方法建立数据有效性。应用于Validation对象的Add方法的语法如下:expression.Add(Type,AlertStyle,Operator,Formula1,Formula2)参数expression是必需的,返回一个Validation对象。参数Type是必需的,数据有效性类型。参数AlertStyl是可选的,有效性检验警告样式。参数Operator是可选的,数据有效性运算符。参数Formula1是

3、可选的,数据有效性公式的第一部分。参数Formula2是可选的,当Operator为xlBetween或xlNotBetween时,数据有效性公式的第二部分(其他情况下,此参数被忽略)。Add方法所要求的参数依有效性检验的类型而定,如表格11所示。数据有效性类型参数xlValidateCustomFormula1必需,忽略Formula2。Formula1必须包含一个表达式,数据项有效时该表达式取值为True,而数据项无效时取值为False。xlInputOnly能使用AlertStyle、Formula1或Formula2参数。xlV

4、alidateListFormula1必需,忽略Formula2。Formula1必须包含以逗号分隔的取值列表,或引用此列表的工作表。xlValidateWholeNumber、xlValidateDate、xlValidateDecimal、xlValidateTextLength或xlValidateTime必须指定Formula1或Formula2之一,或两者均指定。表格11数据有效性类型1-1判断单元格是否存在数据有效性在VBA中没有专门的属性判断单元格是否存在数据有效性设置,可以使用Validation对象的有效性类型和错误陷

5、阱来判断,如下面的代码所示。#001SubValidation()#002OnErrorGoToLine#003IfRange("A2").Validation.Type>=0Then#004MsgBox"单元格有数据有效性!"#005ExitSub#006EndIf#007Line:#008MsgBox"单元格没有数据有效性!"#009EndSub代码解析:Validation过程使用Validation对象的有效性类型和错误陷阱来判断A2单元格中是否存在数据有效性。第6行代码,如果A2单元格中存在数据有效性,Type参数值就会大于等于

6、0,否则就会发生错误,使用OnErrorGoTo捕捉到错误后转移到第8行代码,显示一个消息框。1-2动态的数据有效性利用VBA可以在单元格中建立动态的数据有效性,如下面的代码所示。#001PrivateSubWorksheet_SelectionChange(ByValTargetAsRange)#002IfTarget.Column=1AndTarget.Count=1AndTarget.Row>1Then#003WithTarget.Validation#004.Delete#005.AddType:=xlValidateList,_

7、#006AlertStyle:=xlValidAlertStop,_#007Operator:=xlBetween,_#008Formula1:="主机,显示器"#009EndWith#010EndIf#011EndSub#012PrivateSubWorksheet_Change(ByValTargetAsRange)#013IfTarget.Column=1AndTarget.Row>1AndTarget.Count=1Then#014WithTarget.Offset(0,1).Validation#015.Delete#016Se

8、lectCaseTarget#017Case"主机"#018.AddType:=xlValidateList,_#019AlertStyle:=xlValidAlertStop,_#020Op

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。