我有以下VBA代码:
myList = "test"
Range("A1:Z1").Validation.Delete
Range("A1:Z1").Validation.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Formula1:=myList
如果我的列表超过256个字符,它被截断。 如果超过1024,我得到一个执行错误(我认为这是一个公式的最大长度)。
我怎样才能克服这些限制? 我使用Excel 2003中。
使用张贴在上述评论的链接,我能创造超过一千零二十四分之二百五十六字符的下拉列表。 这是我管理的一些更多的搜索和尝试后得到:
ActiveWorkbook.Names.Add Name:="List", RefersTo:="=ValidationList!$A$1:$A$" & i
Range("A1:AZ1").Validation.Delete
Range("A1:AZ1").Validation.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, Formula1:="=List"
没有什么比这更。 i
是ValidationList片的行数。 我动态创建表和与我想在下拉列表中显示填充第一列。
有用的参考资料:
- http://www.contextures.com/xlDataVal11.html
- http://www.ozgrid.com/forum/showthread.php?t=52916
- http://msdn.microsoft.com/en-us/library/office/ff839847.aspx
- http://social.msdn.microsoft.com/Forums/en-US/isvvba/thread/830b42cf-8c97-4aaf-b34b-d860773281f7/
- VBA的Excel代码:能不能给命名的范围以验证一级方程式