以下是一个可以筛选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 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录