我正在Excel中构建一个基于父子结构的多级依赖下拉结构。使用vba构建它不是问题,但问题是重新打开文件。它会删除验证,因为它们包含的字符太多(超过255?)
生成的验证字符串太长,Excel无法存储,因此将在重新打开后将其删除。
一种解决方案是将验证字符串写入单元格,并基于此单元格值进行验证。唯一的问题是,当我将数据验证链接到这个单元格时,它是唯一的选择。
单元格中的值类似于A、B、C、D(已尝试使用或不使用"")
有没有人建议在数据验证中使用excel公式,以便从位于单个单元格中的A、B、C、D等字符串生成多个选项。
发布于 2017-02-08 00:37:05
TNX用于支持。
解决方案要困难一点。
我能够使它工作,但只能通过组合VBA和Excel公式。另外,我在dataSource中添加了一个同时包含id和optionid的值。
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事件来生成dropdowns(数据验证)所需的值,但不让vba插入用于数据验证的值。它通过一个预加载数组获取这些值,该数组以workbook_open事件启动。(如果没有加载,它会再次加载)。
当我选择一个项目时,它会将id和optionid写入不同的单元格。然后,我使用它们通过offset函数生成下一个dropdowns等。(一个下拉列表可能会导致多行新的下拉列表)
https://stackoverflow.com/questions/40891180
复制相似问题