帮我写一个可以筛选Excel里不连续关键字的代码程序
以下是一个可以筛选Excel中不连续关键字的VBA代码程序:
Sub Filter_non_contiguous_keywords()
Dim ws As Worksheet Dim rng As Range Dim i As Long Dim j As Long Dim k As Long Dim arr() As String Dim str As String Dim match As Boolean
'设置关键字 str = "apple,banana,orange"
'将关键字转换为数组 arr = Split(str, ",")
'循环所有工作表 For Each ws In ActiveWorkbook.Worksheets
'获取用于筛选的范围
Set rng = ws.UsedRange
'循环每行
For i = rng.Rows.Count To 1 Step -1
'将每行转换为字符串
str = ""
For j = 1 To rng.Columns.Count
str = str & " " & rng.Cells(i, j).Value
Next j
'循环每个关键字
match = False
For k = 0 To UBound(arr)
'检查关键字是否存在
If InStr(1, str, arr(k), vbTextCompare) > 0 Then
match = True
Exit For
End If
Next k
'如果没有匹配的关键字,则删除该行
If Not match Then
rng.Rows(i).Delete
End If
Next i
Next ws
End Sub
在这个代码中,我们首先定义了一个字符串变量来存储我们要筛选的关键字。然后,我们将该字符串转换为一个数组,以便我们可以循环遍历每个关键字。
接下来,我们循环遍历每个工作表,并获取用于筛选的范围。然后,我们循环每行并将其转换为一个字符串。接着,我们循环每个关键字,并检查该关键字是否存在于该行中。如果没有任何匹配的关键字,则我们将删除该行。
请注意,我们使用了“vbTextCompare”来进行比较,这意味着我们忽略了大小写。如果您希望区分大小写,请将其替换为“vbBinaryCompare”。
希望这可以帮助您解决您的问题
原文地址: https://www.cveoy.top/t/topic/fiTM 著作权归作者所有。请勿转载和采集!