【发布时间】:2013-04-15 14:10:48
【问题描述】:
我有以下 VBA 代码:
myList = "test"
Range("A1:Z1").Validation.Delete
Range("A1:Z1").Validation.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Formula1:=myList
如果我的列表超过 256 个字符,则会被截断。如果超过 1024,就会出现执行错误(我认为这是公式的最大长度)。
我怎样才能克服这些限制?我正在使用 Excel 2003。
【问题讨论】:
-
也许尝试不同的方法,而不是内置的 Excel 验证。我已经成功使用了它:contextures.com/xlDataVal11.html。设置确实需要一些工作,但我认为它会满足您的需求。
-
我必须动态创建一切。宏被设置为参考并编辑任何打开文档的第一行。不确定我是否可以在每个单元格中动态创建一个组合框控件。
-
您可以使用链接 contextures.com/xlDataVal11.html 中的命名范围方法您可以做的(我这样做)是创建一个隐藏的工作表,在该工作表中我用我的列表填充说 Col A 和给它一个名称,然后在数据验证列表中使用该命名范围。试一试,如果您遇到困难,只需发布您尝试发布的代码,我可以向您展示如何实现它的示例代码。 :)
-
正如我在下面已经说过的,VBA 项目被设置为参考,并与许多 Excel 文档一起使用。我研究了这种方法,但我必须动态创建名称,然后是控件。它看起来有点复杂。
-
不,你不需要创建控件;)只是隐藏表中的命名范围
标签: vba excel excel-formula excel-2003