使用VBA实现如下功能:对“大板”、“东京”、“东京置业”等关键词进行一键筛选,并新建表格,保存筛选结果
时间: 2024-09-06 07:04:00 浏览: 48
在VBA(Visual Basic for Applications)中实现对特定关键词的筛选并新建表格保存结果,可以遵循以下步骤:
1. 打开Excel文件,进入VBA编辑环境(快捷键为Alt + F11)。
2. 在VBA编辑器中,通过插入模块(Insert -> Module)创建一个新的模块。
3. 在新模块中编写VBA代码,实现筛选逻辑和创建新工作表保存筛选结果的功能。以下是一个简单的示例代码:
```vba
Sub 筛选关键词并保存结果()
Dim wsSource As Worksheet
Dim wsTarget As Worksheet
Dim rngToFilter As Range
Dim arrKeywords As Variant
Dim strKeyword As String
Dim lastRow As Long
Dim i As Long
' 设置源工作表和目标工作表
Set wsSource = ThisWorkbook.Worksheets("数据源") ' 假设数据在名为"数据源"的工作表
Set wsTarget = ThisWorkbook.Worksheets.Add
wsTarget.Name = "筛选结果" ' 新建工作表命名为"筛选结果"
' 设置关键词数组
arrKeywords = Array("大板", "东京", "东京置业")
' 设置要筛选的数据区域,这里假设数据从第二行开始,且在第一列
lastRow = wsSource.Cells(wsSource.Rows.Count, 1).End(xlUp).Row
Set rngToFilter = wsSource.Range("A2:A" & lastRow)
' 复制数据表头
wsSource.Rows(1).Copy Destination:=wsTarget.Rows(1)
' 进行筛选操作
With rngToFilter
.AutoFilter Field:=1, Criteria1:="=*" & arrKeywords(0) & "*", Operator:=xlFilterValues
.Offset(1, 0).SpecialCells(xlCellTypeVisible).Copy Destination:=wsTarget.Range("A2")
For i = 1 To UBound(arrKeywords)
.AutoFilter Field:=1, Criteria1:="=*" & arrKeywords(i) & "*", Operator:=xlFilterValues, VisibleDropDown:=False
.Offset(1, 0).SpecialCells(xlCellTypeVisible).Copy
wsTarget.Cells(wsTarget.Rows.Count, 1).End(xlUp).Offset(1, 0).PasteSpecial Paste:=xlPasteValues
Next i
End With
' 清除筛选,显示所有数据
wsSource.AutoFilterMode = False
End Sub
```
4. 运行该宏,它会自动筛选出包含关键词“大板”、“东京”、“东京置业”的数据,并将筛选结果复制到新工作表“筛选结果”中。
阅读全文