Excel验证在VBA中下拉长度问题

时间:2017-04-17 11:25:19

标签: excel vba excel-vba

我是VBA的新手。我在一个旧项目中有一个VBA excel宏编码(使用VBA的Excel验证下拉列表)。当下拉走了 到最大数量的列表我收到错误。下拉数据从另一张表中收集

下面是截图

enter image description here

enter image description here

Public Sub CORE_SetValidation(ByRef Rng As Range, ByVal Value As String)
    With Rng.Validation
        Call .Delete
        If Value <> "" Then
            Call .Add(Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Formula1:=Value)
            .ErrorMessage = "Please select a value from drop-down list"
            .ErrorTitle = "Value Error"
            .IgnoreBlank = True
            .InCellDropdown = True
            .InputMessage = ""
            .InputTitle = ""
            .ShowInput = True
            .ShowError = True
        End If
    End With
End Sub
  1. VBA下拉列表中的字符或下拉列表是否有任何限制,因为从错误消息中我无法预测问题。
  2. 我能否收到确切的错误消息。

1 个答案:

答案 0 :(得分:1)

使用一个字符串来指定存储列表的范围,而不是使用包含由逗号分隔的验证值列表的字符串。例如,如果验证列表存储在第2行到第1001行A列中的工作表“ValidationValues”中,则字符串将如下所示:

"=ValidationValues!A2:A1001"

每个验证值都必须位于自己的工作表单元格中。

然后,您可以将此字符串传递给CORE_SetValidation子目录:

Call CORE_SetValidation(myRange, "=ValidationValues!A2:A1001")