excel - 为 Excel 表中的列实现类似“标签”的过滤器?
问题描述
我在 excel 表中有一个列,其中可能包含以下值:
- 5
- 7,1,8
- 3,5
- 全部
我想实现一个可以过滤这些值的宏,这样如果我过滤“5”,就会出现第一个和第三个结果。另外,我将 ALL 包含在列表中,因为将来可能会添加文本标签。这是我到目前为止所拥有的,但结果不一致:
Sub ContainsFilter()
Dim strName As String
strName = InputBox("What would you like to search for?")
If strName = "" Then
ActiveSheet.ShowAllData
Else
ActiveSheet.ListObjects("Table").Range.AutoFilter Field:=7, Criteria1:="=*" & strName & "*", Operator:=xlAnd
End If
End Sub
解决方案
以下应该有效:
Option Explicit
Public Sub ContainsFilter()
Dim InputReturn As Variant
InputReturn = Application.InputBox(Prompt:="What would you like to search for?", Title:="Filter Field 7", Type:=2) ' type 2 = string
If VarType(InputReturn) = vbBoolean And InputReturn = False Then
' User pressed cancel button or X in the right corner
Exit Sub
End If
If InputReturn = vbNullString Then
ActiveSheet.ShowAllData
Else
ActiveSheet.ListObjects("Table").Range.AutoFilter Field:=7, Criteria1:=Array("*" & InputReturn & "*", InputReturn), Operator:=xlFilterValues
End If
End Sub
推荐阅读
- java - 如何用 PDActionJavaScript 替换 PDAnnotationLink 的默认操作?
- python - 如何在 Pyspark 中编写 for 循环或情节
- java - 如何重新排列一个整数,以便将其重新排列为 Java 中的最高可能值?
- delphi - 无法在 Delphi 中更改 TEdit 文本
- python - create_user() 缺少 1 个必需的位置参数:“用户名”
- wso2 - WSO2 中的 API 管理规则
- java - springboot mongo 如果图像不存在使用现有的
- arduino-c++ - TinkerCAD Ardunio 代码错误,参数太少
- gpflow - 诱导变量的重塑 - GPflow
- sql - 创建没有重复的新 SQL 表