我是VBA的新手。我在一个旧项目中有一个VBA excel宏编码(使用VBA的Excel验证下拉列表)。当下拉走了 到最大数量的列表我收到错误。下拉数据从另一张表中收集
下面是截图
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
答案 0 :(得分:1)
使用一个字符串来指定存储列表的范围,而不是使用包含由逗号分隔的验证值列表的字符串。例如,如果验证列表存储在第2行到第1001行A列中的工作表“ValidationValues”中,则字符串将如下所示:
"=ValidationValues!A2:A1001"
每个验证值都必须位于自己的工作表单元格中。
然后,您可以将此字符串传递给CORE_SetValidation子目录:
Call CORE_SetValidation(myRange, "=ValidationValues!A2:A1001")