ExcelvalidationVBA中的下拉长度问题

我是VBA新手。 我在一个旧项目中使用VBA excelmacros编码(使用VBA的Excelvalidation下拉列表)。 当下拉列expression到最大列表数时,我正在收到错误。下拉数据是从另一张表中收集的

下面是截图

在这里输入图像说明

在这里输入图像说明

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. 我可以得到确切的错误信息。

不要使用包含由逗号分隔的validation值列表的string,而要使用指定列表存储区域的string。 例如,如果validation列表存储在工作表“ValidationValues”列A中从第2行到第1001行,那么您的string将如下所示:

 "=ValidationValues!A2:A1001" 

每个validation值都需要位于其自己的工作表单元格中。

然后你可以将这个string传递给CORE_SetValidation子类:

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