数据验证的Excel VBA代码可以使用下面的方式实现多项选择:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim rng As Range
Dim cell As Range
Dim selectedValues As String
' 定义数据验证范围
Set rng = Range("A1:A10")
' 检查是否在数据验证范围内发生了变化
If Not Intersect(Target, rng) Is Nothing Then
' 清除目标单元格的数据验证
Target.Validation.Delete
' 遍历数据验证范围内的每个单元格
For Each cell In rng
' 检查单元格是否被选中
If cell.Value <> "" Then
' 将选中的值添加到字符串中
selectedValues = selectedValues & cell.Value & ","
End If
Next cell
' 去除字符串末尾的逗号
selectedValues = Left(selectedValues, Len(selectedValues) - 1)
' 设置目标单元格的数据验证为选中的值
With Target.Validation
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:=selectedValues
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.ShowInput = True
.ShowError = True
End With
End If
End Sub
这段代码是一个工作表的事件处理程序,当数据验证范围内的单元格发生变化时,会自动更新目标单元格的数据验证选项。具体实现步骤如下:
这样,当数据验证范围内的单元格发生变化时,目标单元格的数据验证选项会自动更新为选中的值。
这段代码可以应用于多列数据验证,只需将数据验证范围修改为多个列的范围即可。
腾讯云相关产品中,可以使用腾讯文档(https://cloud.tencent.com/product/tcd)来实现类似的功能。腾讯文档是一款在线协作文档工具,可以创建表格、设置数据验证等功能,支持多人实时协作。
领取专属 10元无门槛券
手把手带您无忧上云