EXCEL选择下拉框实现复选

参考地址:点击打开链接

第一步:新建一个excel且设置数据有效性【选中X列--数据--有效性】

第二步:开发工具--查看代码--把代码复制进去保存就OK了

代码如下:

Private Sub Worksheet_Change(ByVal Target As Range)
' Developed by Contextures Inc.
' www.contextures.com
Dim rngDV As Range
Dim oldVal As String
Dim newVal As String
If Target.Count > 1 Then GoTo exitHandler

On Error Resume Next
Set rngDV = Cells.SpecialCells(xlCellTypeAllValidation)
On Error GoTo exitHandler

If rngDV Is Nothing Then GoTo exitHandler

If Intersect(Target, rngDV) Is Nothing Then
   'do nothing
Else
  Application.EnableEvents = False
  newVal = Target.Value
  Application
Excel 三级 联动 下拉框 宏代码 实例 代码注释 先在第一个下拉框加入一个valiation, 内容是 =$A$2:$A$5 Private Sub Worksheet_Change(ByVal Target As Range) ' Call back function which defined within according worksheet Dim i As Integer Dim tempStr As String Dim firstDrawBoxRowCount As Integer Dim firstDrawBoxColumn As Integer firstDrawBoxRowCount = 4 'Define the row number of first draw box firstDrawBoxColumn = 1 'Define the column number of ifrst draw box Dim secondDrawBoxRowCount As Integer Dim secondDrawBoxColumn As Integer secondDrawBoxRowCount = 33 'Define the row number of second draw box secondDrawBoxColumn = 4 'Define the column number of second draw box If Target.Column = 1 Then 'This defines the first column of draw box list, you can also define the row number of draw box list Cells(Target.Row, Target.Column + 1) = "" ' Do the clean first Cells(Target.Row, Target.Column + 1).Validation.Delete Cells(Target.Row, Target.Column + 2) = "" Cells(Target.Row, Target.Column + 2).Validation.Delete For i = 2 To firstDrawBoxRowCount + 1 'Enter the cycle to find out the content for column 2 If Trim(Cells(Target.Row, Target.Column)) = Trim(Cells(i, firstDrawBoxColumn)) Then tempStr = Trim(Cells(i, firstDrawBoxColumn + 1)) 'Find out the options for second draw box, it is seperated by , Cells(Target.Row, Target.Column + 1).Select ' Fill the validation to second draw box With Selection.Validation .Delete .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _ xlBetween, Formula1:=tempStr .IgnoreBlank = True .InCellDropdown = True .InputTitle = "" .ErrorTitle = "" .InputMessage = "" .ErrorMessage = "" .IMEMode = xlIMEModeNoControl .ShowInput = True .ShowError = True
要在EasyExcel导出的Excel中设置下拉框复选,首先需要创建一个下拉框列表,然后将其应用到需要设置下拉框的单元格上。具体步骤如下: 1. 创建下拉框列表 ```java // 创建下拉框列表数据 List<String> list = new ArrayList<>(); list.add("选项1"); list.add("选项2"); list.add("选项3"); list.add("选项4"); // 创建下拉框列表 DataValidationHelper helper = sheet.getDataValidationHelper(); DataValidationConstraint constraint = helper.createExplicitListConstraint(list.toArray(new String[0])); CellRangeAddressList addressList = new CellRangeAddressList(1, 10, 0, 0); // 设置下拉框应用范围 DataValidation validation = helper.createValidation(constraint, addressList); sheet.addValidationData(validation); ``` 2. 设置单元格应用下拉框 ```java // 创建Workbook和Sheet对象,略 // 创建Excel头部 List<String> head = new ArrayList<>(); head.add("选项"); // ... // 创建Excel数据 List<List<String>> data = new ArrayList<>(); for (int i = 0; i < 10; i++) { List<String> item = new ArrayList<>(); item.add(""); // 设置空白单元格 // ... data.add(item); } // 写入Excel数据 WriteSheet sheet = EasyExcel.writerSheet().build(); sheet.setHead(head); sheet.write(data); // 设置单元格应用下拉框 DataValidationHelper helper = sheet.getDataValidationHelper(); DataValidationConstraint constraint = helper.createFormulaListConstraint("选项列表!$A$1:$A$4"); // 设置下拉框应用列表 CellRangeAddressList addressList = new CellRangeAddressList(1, 10, 0, 0); // 设置下拉框应用范围 DataValidation validation = helper.createValidation(constraint, addressList); validation.setEmptyCellAllowed(true); // 设置允许空白单元格 validation.setShowErrorBox(true); // 设置显示错误提示框 sheet.setValidationData(validation); ``` 以上是在EasyExcel导出的Excel中设置下拉框复选的基本步骤,具体实现可以根据实际需求进行调整。
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值