Excel VBA下拉列表,默认值

时间:2018-02-09 15:40:31

标签: excel-vba drop-down-menu default-value vba excel

如果A Col有值,则使用以下代码创建下拉列表。 如何将设置为默认值?

  Dim myList As String, r As Range

  myList = "Yes,No"

  If w1.Range("A" & Rows.Count).End(xlUp).Address <> "$A$1" Then
    For Each r In w1.Range("A2", w1.Range("A" & Rows.Count).End(xlUp))
        If r.Value <> vbNullString Then
            With r.Offset(, 2).Validation
            .Delete
            .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Formula1:=myList
            End With
            If r.Offset(, 2).Value = "" Then r.Offset(, 2).Value = "No"
            If r.Offset(, 2).Value = "" Then Split myList, ","
            End If
      Next r
  End If

2 个答案:

答案 0 :(得分:1)

应用 DV 时插入默认值:

取代:

With r.Offset(, 2).Validation
                .Delete
                .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Formula1:=myList
End With

使用:

With r.Offset(, 2).Validation
                .Delete
                .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Formula1:=myList
End With
r.Offset(, 2).Value = "No"

答案 1 :(得分:0)

验证下拉列表没有默认值。您可以使用“否”填充空单元格,并使用“否,是”作为列表。

与数据库不同,Excel不需要(默认情况下)启动新记录/行,因此默认值对Excel没有意义。鉴于此,只需用“否”填充所有空白单元格没有用,因为您不知道用户是否知道或打算选择“否”。

(对于数据库,用户将在物理上看到字段值,假设默认值为“No”,然后他们可以明确选择接受或更改它。)