经过研究,做了一个可以帮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编辑过]