Excel过滤单个单元格中的多个值

时间:2014-12-18 00:19:07

标签: excel vbscript

我正在寻找有关在逗号分隔的一个单元格中过滤多个值的帮助。 例如,我有一个包含以下数据的电子表格:

Column A (Risk)     Column B (Risk Mitigation)

Risk A               Requirement1, Requirement2

Risk B               Requirement2, Requirement6, Requirement7

Risk C               Requirement1, Requirement3, Requirement9

当我过滤“需求缓解”时我希望看到以下复选框:

Requirement1

Requirement2


Requirement3

Requirement4

Requirement5

...

Requirement9

因此,对于我的例子,当我只检查需求1过滤器框时,只有'风险A'和'风险C'行将显示

目前,当我通过唯一的单元格值进行过滤时,它会给我

Requirement1, Requirement2

Requirement2, Requirement6, Requirement7

Requirement1, Requirement3, Requirement9

请注意,上面只是一个例子,我有数千个个人要求,因此不会像每个要求有一个列那么简单。

我接受任何建议,包括创建vbscripts。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

这很棘手。

  1. 首先,您需要创建一个包含列表框的表单,并使用正确语法中的要求填充该列表框。
  2. 然后你需要创建一个循环,它将遍历列中的每个单元格并将它们中的每一个保存为一个字符串,你可以创建一个一维的字符串数组来保存它们。
  3. 然后你需要一个循环来遍历每个字符串并使用split函数用分隔符分隔字符串,你需要将分隔符设置为“,”以确保它在逗号分隔字符串
  4. 然后,您需要一个循环,该循环将在您从表单中的列表框中进行选择后运行。此循环将遍历2D数组中的每个字符串,并检查它是否包含列表框中的任何要求。如果不是,请运行代码:Range(“B”& x).EntireRow.Hidden = True其中x是行,您可以使用循环中的一个变量来实现此目的。

  5. 如果您需要更多具体信息,我可能需要查看您已经完成的工作,也可以使用此方法自动填充表单中的列表框。