以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  EXCEL数据有效性:介绍Validation对象在狐表中的应用  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=146703)

--  作者:ahui010
--  发布时间:2020/2/29 16:35:00
--  EXCEL数据有效性:介绍Validation对象在狐表中的应用


经过研究,做了一个可以帮Excel文件生成下拉数据有校性的代码,下面会找到Excel文列第一行的第1列到第30列中,如果值是性别,就其下面的第二行到50000行,帮其设置数据有校性:男;女

 

 Dim App As New MSExcel.Application
       App.Visible = False      ‘不显示出来,在后台运行
Dim Wb As MSExcel.WorkBook = App.WorkBooks.Open("C:\\Users\\Administrator\\Downloads\\XT00001.xlsx")      ’打开xlsx
Dim Ws As MSExcel.WorkSheet = Wb.WorkSheets(1)     ’选择第一个表
Dim Rg As MSExcel.Range     ‘定义选区
    For c As Integer = 1 To 30 \'循环1到30列 
          Rg = Ws.Cells(1,c)      ’分别选择第一行的第1列到第30列,实际中这个数字可以根据列数来修改
          If Rg.Value = "性别"       ‘如果发现其值是性别
                messagebox.show(Rg.Address)  ’弹出其地址,这是测试
              \'下表示选择了第二行到50000行的区域,设置数据有校性:男;女
               With Ws.Range(Rg.Address.SubString(1, 1) & "2:" & Rg.Address.SubString(1, 1) & "50000").Validation
                      .Delete  ‘清除之前设置的有效性
                      .Add(Type:=MSExcel.XlDVType.xlValidateList, AlertStyle:=MSExcel.XlDVAlertStyle.xlValidAlertStop, Operator:=MSExcel.XlFormatConditionOperator.xlBetween, Formula1:="男,女")      ’表示序列,停止图标,输入的数据只能介于数据只能是下拉值:男,女,如是引用单元格的区域,如:"=Sheet2!$A$2:$A$23",表示引用了第二页的A2到A23的内容。
                        .IgnoreBlank = True     \'允许数据有效性区域有空值
                        .InCellDropdown = True     \'提供下拉箭头,可忽略,设为序列的默认有下拉
                        .ShowError = True     \'是否弹出警告,可忽略,仍然有提示
                        .ErrorTitle ="温馨提示"    \'警告标题,可忽略,仍然有提示
                        .ErrorMessage ="填写内容必须从下拉列表选择!"    \'警告信息,可忽略,仍然有提示
                End With
           End If
       Next
       Wb.Save ‘保存
        Wb.Close ’关闭
App.Quit ‘退出



                  EXCEL数据有效性:认识Validation对象


   Validation对象有3个方法:


1,Add方法:对指定的单元格区域添加数据有效性。


    .add(Type, AlertStyle, Operator, Formula1, Formula2)


2,Delete方法:删除对象。


      .delete


3,Modify方法:修改单元格区域的数据有效性。


      .modify(Type, AlertStyle, Operator, Formula1, Formula2)


参数介绍:


参数Type是必需的,数据有效性类型。


参数AlertStyl是可选的,有效性检验警告样式。


参数Operator是可选的,数据有效性运算符。


参数Formula1是可选的,数据有效性公式的第一部分。


参数Formula2是可选的,当Operator为xlBetween(介于)或xlNotBetween(不介于)时,数据有效性公式的第二部分(其他情况下,此参数被忽略)。



Validation对象共有18个属性,其中的一些属性介绍如下:




图片点击可在新窗口打开查看此主题相关图片如下:0 (1).jpg
图片点击可在新窗口打开查看



Type属性:返回一个Long型值,对应着XlDVType常量,代表数据有效性类型。其中,常量xlValidateWholeNumber,值为1,表示整数值;常量xlValidateDecimal,值为2,表示小数值;常量xlValidateList,值为3,表示序列;常量xlValidateDate,值为4,代表日期;常量xlValidateTime,值为5,代表时间;常量xlValidateTextLength,值为6,代表文本长度;常量xlValidateCustom,值为7,代表使用公式在验证数据;常量xlValidateInputOnly,值为0,代表仅当用户修改值时验证。


Operator属性:返回一个代表数据有效性运算符的Long型值。


Formula1属性:返回与数据有效性相关的值或者表达式,可以是常量值、字符串、单元格引用或公式。


Formula2属性:返回与数据有效性相关的值或者表达式,仅用于数据有效性条件Operator属性设置为xlBetween(介于)或xlNotBetween(不介于)时。可以是常量值、字符串、单元格引用或公式。


IgnoreBlank属性:设置为True时,允许数据有效性区域有空值。


InCellDropdown属性:设置为True时,数据有效性显示包含可选取值的下拉列表。




图片点击可在新窗口打开查看此主题相关图片如下:0.png
图片点击可在新窗口打开查看



“输入信息”选项卡中对应的属性


ShowInput属性:设置为True时,在用户选取设置了数据有效性的单元格时显示输入信息。


InputTitle属性:返回或者设置数据有效性输入信息框中的标题。


InputMessage属性:返回或者设置数据有效性输入信




图片点击可在新窗口打开查看此主题相关图片如下:0.jpg
图片点击可在新窗口打开查看



“出错警告”选项卡中对应的属性


ShowError属性:设置为True时,当用户输入无效数据时显示出错信息。


AlertStyle属性:返回出错警告样式,只读。其中,xlDVAlertStyle常量指定在消息框中的图标,xlValidAlertInformaion代表信息图标,xlValidAlertStop代表停止图标,xlValidAlertWarning代表警告图标。


ErrorTitle属性:返回或者设置数据有效性出错信息框的标题。


ErrorMessage属性:返回或者设置数据有效性的出错信息。


[此贴子已经被作者于2020/2/29 16:53:59编辑过]

--  作者:狐狸爸爸
--  发布时间:2020/2/29 16:56:00
--  
谢谢分享