2013 Microsoft Excel 表格筛选快捷方式

2013 Microsoft Excel 表格筛选快捷方式

我想知道当您有一个格式化为表格或数据透视表的列表时,如何在搜索字段中输入多个条目。我愿意接受任何可行的解决方案。列表每天都会更改,过滤器列表也几乎同样频繁地更改。我如何快速“复制和粘贴”搜索项并将其插入过滤器中,以便只显示该数据。我将提供一个小例子,但列表可能有数千行,搜索过滤器可能有数百个单独的数字。

在此处输入图片描述

在此处输入图片描述

在此处输入图片描述

答案1

编辑 - 我意识到您说您可能正在处理数百个条件。我最初的答案只对少数几个条件有效。我已更新下面的代码,但图像可能仍引用旧的 VBA。

您可以使用 VBA 模块执行此操作,然后创建一个按钮,单击该按钮将根据您在某些单元格中输入的值进行过滤。如果尚未显示开发人员选项卡,则需要将其显示在功能区中。请参阅此处了解如何显示它。

首先,确定哪些单元格将用于保存筛选条件。在第一张图片中,这些单元格位于 F3-F5 中。这很好,但是筛选范围时,这些单元格可能会被隐藏。为了演示,我将范围放在筛选时不会消失的区域。

在此处输入图片描述

接下来,按 Alt+F11 打开 VBA 编辑器,然后从此处的下拉菜单中选择“新模块”进行创建: 在此处输入图片描述

在出现的新模块窗口中,输入以下代码(已编辑 - 我意识到您可能要处理数百个标准):

    Sub MultiSelectFilter()
Dim v As Variant

v = Split(Join(Application.Transpose(Range("A11:A13"))))
    Worksheets("Sheet3").Select
    Range("A1").AutoFilter
    Range("A1").AutoFilter Field:=1, Criteria1:=v, Operator:=xlFilterValues
End Sub

工作原理如下:首先,我们告诉 Excel A11:A13 是我们要查找的数字。这就是 Dim v As Variant 行的作用。

然后我们告诉 Excel 这些值是什么。在我的例子中,是 A11 到 A13。您可以根据需要添加或减去任意数量的搜索条件。

接下来我们告诉 excel 我们要过滤的范围。首先选择工作表,然后告诉它要过滤的范围(在本例中,A1 是我们要过滤的列)。然后我们告诉 AutoFilter 函数要查找什么值Range("A1").AutoFilter Field:=1, Criteria1:=v, Operator:=xlFilterValues

现在,当您输入值时,您可以从“宏”下的开发人员选项卡运行 MultiSelectFilter 宏

在此处输入图片描述

并过滤范围:

在此处输入图片描述

为了更进一步,并使其更加用户友好,您可以将宏分配给按钮。在开发人员选项卡上的“插入”部分下添加一个按钮,然后选择 MultiSelectFilter 宏。 在此处输入图片描述

在此处输入图片描述

在此处输入图片描述

如果您是 VBA 新手,这是一个非常适合入门的项目!希望对您有所帮助。

相关内容