在"数据验证"下拉列表中设置默认值

Prz*_*min 7 excel vba excel-vba drop-down-menu

我有我的很多板材下拉列表中,我已经通过菜单设置Data> Data Validation> list.VBA中有一种批量方式可以将它们全部设置为默认值吗?默认值我指的是列表中声明的第一个值.

BTW.我按照公式为A1中的下拉列表设置了一个来源:

__PRE__

是否有办法将此公式放入B1并在下拉列表源中将其称为Choose item from the list仅指向一个单元格?(这不起作用).

Prz*_*min 3

这就是我最终得到的结果。

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
Run Code Online (Sandbox Code Playgroud)

HasValidation 函数是从这里窃取的。

运行宏后,DropDownListToDefault单击 DV 单元格后您将有以下选择:

在此输入图像描述

请注意,在下拉列表中没有像“- Select from the list -如果您希望用户从下拉列表中选择某些内容”这样的项目,只需在进一步处理中不接受默认值即可。