我正在尝试使用VBA在整个单元格范围内创建数据验证。
我传入一个逗号分隔的字符串,该字符串派生自SQL查询。它抛出运行时错误'1004'。 acc
是一个逗号分隔的字符串。字符串中没有VBA关键字,字符串正确,SQL查询正确。这发生在.Add
行。
With equipRange.Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:=acc
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.ShowInput = True
.ShowError = True
End With
当我将查询限制为仅包含269个项目时,297中的工作正常。但是,当我点击270项时,它会抛出异常。我不认为它与内容有任何关系。
有人对正在发生的事情有任何想法吗?
修改
我之前曾要求解决方法,但现在我想了解如何使用SQL查询填充列表。
提前谢谢。
答案 0 :(得分:1)
我不认为,字符数量是限制或是错误的原因。您应该尝试创建逗号分隔字符串列表。 假设您的设备列表在A列中。然后,创建一个命名范围,如下所示,然后尝试添加数据验证列表。
检查以下示例代码:
Sub try()
ActiveWorkbook.Names.Add Name:="List", RefersTo:="=Sheet1!$A$1:$A$8000"
Range("C2").Validation.Delete
Range("C2").Validation.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, Formula1:="=List"
End Sub