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/lKq3 著作权归作者所有。请勿转载和采集!