繁体   English   中英

是否可以在Excel 2010中基于单个单元格中的字符串进行数据验证

[英]Is it possible to base data validation on a string in a single cell in excel 2010

我正在基于父子结构的Excel中构建多级依赖下拉菜单结构。 用vba构建它不是问题,但是问题是重新打开文件。 由于字符过多(超过255个?),因此删除了验证

生成的验证字符串太长,无法存储Excel,因此在重新打开后将其删除。

一种解决方案是将验证字符串写入单元格中,并使验证基于此单元格值。 唯一的问题是,当我将数据验证链接到此单元格时,这是唯一的选择。

单元格中的值类似于A,B,C,D(已尝试使用“ |”或不使用“”)

是否有人建议在数据验证中使用excel公式,以便根据位于单个单元格中的字符串A,B,C,D生成多个选项。

TNX的支持。

解决方案有点困难。

我能够使它起作用,但只能通过结合使用VBA和Excel公式来实现。 我也向其中添加了id和optionid的dataSource添加了一个值。

Excel:

对于数据验证,我使用一个函数,该函数利用动态偏移量并基于2个值。 这样,我不会收到验证超过255个字符的错误。

数据验证公式:= OFFSET(List!$ A $ 2; MATCH(CONCATENATE(V18;“ |”; E18); List!$ F:$ F; 0)-2; 1; COUNTIF(List!$ F:$ F ; CONCATENATE(V18;“ |”; E18)))

一种是ID,一种是optionid。

VBA:

现在,我使用on change事件生成下拉列表(数据验证)所需的值,但不让vba插入数据验证的值。 它通过以workbook_open事件开始的预加载数组获取这些值。 (如果未加载,则会再次加载)。

当我选择一个项目时,它将id和optionid写入另一个单元格。 然后,我用这些函数通过offset函数生成下一个下拉列表。 (一个下拉菜单可能会导致多行新的下拉菜单)

  • 还添加了一些用于删除和更改(中间)事件的功能。

  • 如果只有一个选项,onChange事件现在也会触发下一个下拉列表并写入其值。 当然,这将触发下一个。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM