以下是一个示例代码,可以根据多个类别名称筛选原始数据,然后将符合条件的内容复制到指定的工作表和行数以下:

Sub FilterAndCopyData()

    Dim wsSource As Worksheet, wsDest As Worksheet
    Dim lastRow As Long, destRow As Long
    Dim filter1 As String, filter2 As String
    Dim i As Long, j As Long
    
    '设置筛选条件
    filter1 = "类别1"
    filter2 = "类别2"
    
    '指定源工作表和目标工作表
    Set wsSource = ThisWorkbook.Worksheets("原始数据")
    Set wsDest = ThisWorkbook.Worksheets("目标工作表")
    
    '确定源工作表的最后一行
    lastRow = wsSource.Cells(wsSource.Rows.Count, "A").End(xlUp).Row
    
    '从第2行开始循环源工作表的所有行
    destRow = 2
    For i = 2 To lastRow
        '如果该行的类别名称符合筛选条件
        If wsSource.Cells(i, "B").Value = filter1 Or wsSource.Cells(i, "B").Value = filter2 Then
            '将该行的内容复制到目标工作表的指定行数以下
            For j = 1 To 5
                wsDest.Cells(destRow, j).Value = wsSource.Cells(i, j).Value
            Next j
            destRow = destRow + 1
        End If
    Next i
    
End Sub

在这个示例代码中,我们假设原始数据存储在名为“原始数据”的工作表中,其中包含5列数据,第2列是类别名称。我们还假设目标工作表的名称为“目标工作表”,我们想将符合筛选条件的数据复制到该工作表的第2行以下。

在代码中,我们首先设置了两个筛选条件,即“类别1”和“类别2”。然后,我们指定了源工作表和目标工作表,并确定了源工作表的最后一行。接下来,我们循环源工作表的所有行,并检查每一行的类别名称是否符合筛选条件。如果符合条件,我们将该行的内容复制到目标工作表的指定行数以下,并将目标行数加1。最后,我们完成了数据复制的过程。


原文地址: https://www.cveoy.top/t/topic/xbX 著作权归作者所有。请勿转载和采集!

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