Private Sub Worksheet_Change(ByVal Target As Range)
'UpdatebyExtendoffice20180510
Dim I As Integer
Dim xRgVal As Range
Dim xStrNew As String
Dim xStrOld As String
Dim xFlag As Boolean
Dim xArr
On Error Resume Next
Set xRgVal = Cells.SpecialCells(xlCellTypeAllValidation)
If (Target.Count > 1) Or (xRgVal Is Nothing) Then Exit Sub
If Intersect(Target, xRgVal) Is Nothing Then Exit Sub
Application.EnableEvents = False
xFlag = True
xStrNew = Target.Value
Application.Undo
xStrOld = Target.Value
If xStrNew <> "" Then
If InStr(1, xStrOld, xStrNew) = 0 Then
xStrNew = xStrNew & IIf(xStrOld <> "", "、" & xStrOld, "")
xStrNew = xStrOld
End If
End If
Target.Value = xStrNew
Application.EnableEvents = True
End Sub
再看文件时已经可以多选了:

自定义分隔符号:

更改这个顿号为你想要的后保存脚本即可。
参考链接:https://www.5axxw.com/questions/content/wq9lhv
最近在做一个项目需要兼容到ie不同版本,在使用select时遇到了各种问题。后来索性就自己使用原生js实现了这样一个下拉框,话不多说,直接上代码吧。
<html lang=en>
<meta charset=UTF-8>
<title>自定义select</title>
</head>
<style>
margin: 0;
padding: 0;
#main{
position: relative;
width: 280px;
height: 42px;
#content{
先在某列利用数据验证-建立下拉菜单表;
在下拉表所打开的sheet中(如sheet1),鼠标右击下面的工作表。选择“查看代码”,打开VBA编辑界面;
复制以下代码,并将其中一行的 If Target.Column = 3 Then 中的3修改为下来数据表所在的列数。(代码来源:Excel Data Validation - Select Multiple Items)
Private Sub Worksheet_Change(ByVal Target As Range)
' Develo
Excel利用VBA实现下拉列表,同时支持输入时动态查询,根据输入的不同实现动态的查询
先看一下实验效果:
当点击website这一列时会出现所有的网站列表,双击可点击选择数值填入
输入关键字时会只出现包含关键字的结果
在C,D两列选择单元格后会出现仅在此网站下的数据如果网站为空则会自动向上寻找,同时也支持自定义的搜索
接下来为主要的实现方法:
第一部分为工作表选取改变事件,实现的是当有单元格被选定时会自动出现下拉菜单和输入框。首先需要在sheet中
如图所示,该表为某公司员工的档案录入表。由于B列部门列经常需要重复录入,而且部门列表一般为固定的序列(如图2-58中E列所示),如何用VBA对B列创建下拉列表以便输入内容?
财务部...
实现 Java Excel 中同一单元格下拉框涉及多个单元格下拉框二级级联的代码,可以参考以下步骤:
1. 在 Excel 表格中,创建第一个单元格下拉框,并设置数据源。例如,我们创建的第一个下拉框是在 A1 单元格中。
2. 在 Excel 表格中,创建第二个单元格下拉框,并设置数据源。例如,我们创建的第二个下拉框是在 B1 单元格中。
3. 在 Java 代码中,通过 poi 库读取 Excel 表格。具体代码如下:
```java
FileInputStream inputStream = new FileInputStream(new File("example.xlsx"));
Workbook workbook = new XSSFWorkbook(inputStream);
Sheet sheet = workbook.getSheetAt(0);
4. 获取第一个下拉框所在的单元格对象,以及第二个下拉框所在的单元格对象。例如,我们获取的第一个下拉框所在的单元格对象是 A1,第二个下拉框所在的单元格对象是 B1。
```java
Cell firstDropDownCell = sheet.getRow(0).getCell(0);
Cell secondDropDownCell = sheet.getRow(0).getCell(1);
5. 为第一个下拉框所在的单元格对象设置数据有效性。这里我们需要使用 DataValidationHelper 和 DataValidation 对象来实现。
```java
DataValidationHelper validationHelper = sheet.getDataValidationHelper();
DataValidationConstraint validationConstraint = validationHelper.createFormulaListConstraint("A2:A5");
CellRangeAddressList rangeList = new CellRangeAddressList(0, 0, 0, 0);
DataValidation validation = validationHelper.createValidation(validationConstraint, rangeList);
sheet.addValidationData(validation);
6. 为第二个下拉框所在的单元格对象设置数据有效性,并且将其绑定到第一个下拉框所在的单元格对象上。
```java
DataValidationConstraint validationConstraint2 = validationHelper.createFormulaListConstraint("INDIRECT($A$1)");
CellRangeAddressList rangeList2 = new CellRangeAddressList(0, 0, 1, 1);
DataValidation validation2 = validationHelper.createValidation(validationConstraint2, rangeList2);
validation2.setShowErrorBox(true);
sheet.addValidationData(validation2);
注意,这里我们使用了 INDIRECT 函数来实现二级级联,将第二个下拉框的数据源绑定到第一个下拉框所选定的值上。
完整代码如下:
```java
FileInputStream inputStream = new FileInputStream(new File("example.xlsx"));
Workbook workbook = new XSSFWorkbook(inputStream);
Sheet sheet = workbook.getSheetAt(0);
Cell firstDropDownCell = sheet.getRow(0).getCell(0);
Cell secondDropDownCell = sheet.getRow(0).getCell(1);
DataValidationHelper validationHelper = sheet.getDataValidationHelper();
DataValidationConstraint validationConstraint = validationHelper.createFormulaListConstraint("A2:A5");
CellRangeAddressList rangeList = new CellRangeAddressList(0, 0, 0, 0);
DataValidation validation = validationHelper.createValidation(validationConstraint, rangeList);
sheet.addValidationData(validation);
DataValidationConstraint validationConstraint2 = validationHelper.createFormulaListConstraint("INDIRECT($A$1)");
CellRangeAddressList rangeList2 = new CellRangeAddressList(0, 0, 1, 1);
DataValidation validation2 = validationHelper.createValidation(validationConstraint2, rangeList2);
validation2.setShowErrorBox(true);
sheet.addValidationData(validation2);
FileOutputStream outputStream = new FileOutputStream("example.xlsx");
workbook.write(outputStream);
workbook.close();
需要注意的是,此代码只是一个简单的示例,实际情况下需要根据具体需求进行适当的修改。
SpringBoot导入第三方jar方法打包报错Failed to load ApplicationContext Failed to determine a suitable driver cla