我有很多数据验证(DV)细胞,我已经通过菜单设置下拉列表Data
> Data Validation
> list
。VBA中是否可以使用批量方法将它们全部设置为默认值?默认值是指:
Choose item from the list
。如果我们希望用户对其选择负责,则第二个选项可能很有用。用户单击数据验证单元格后,便被迫选择某项。没有选项保留默认值,Choose item from the list
因为该值不在验证列表中。因此,用户以后不能说“我没有投票”。
这就是我最终得到的。
Sub DropDownListToDefault()
Dim oCell As Range
For Each oCell In ActiveSheet.UsedRange.Cells
If HasValidation(oCell) Then
oCell.Value = "'- Choose from the list -"
End If
Next
End Sub
Function HasValidation(cell As Range) As Boolean
Dim t: t = Null
On Error Resume Next
t = cell.Validation.Type
On Error GoTo 0
HasValidation = Not IsNull(t)
End Function
函数HasValidation从这里被盗。
运行宏DropDownListToDefault
后,单击DV单元后,您将有以下选择:
请注意,在下拉列表中没有类似“- Select from the list -
如果您希望用户从下拉列表中选择某项”之类的项目,只需在后续处理中不接受默认值即可。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句