vba 根据列表的多个类别名称筛选复制内容到指定工作表的指定行数以下
以下是一个示例代码,可以根据多个类别名称筛选原始数据,然后将符合条件的内容复制到指定的工作表和行数以下:
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 著作权归作者所有。请勿转载和采集!