AI写代码,多少"老师"要失业
作者:XData Analysis VBA之前朋友赠送的大佬的插件,我一直也很少用,最常用的就是代码排版,今天试了下AI功能,不得不说,做的很好,就是运行有点久差不多20秒,但是不影响,估计有自己的服务器,反正能用才是硬道理。
'如何对区域内的数据进行高级筛选 , 例如实现B列高级筛选, 得到包含多个关键词的筛选结果Sub AdvancedFilter() Dim ws As Worksheet Dim rngData As Range Dim rngCriteria As Range Dim rngResult As Range Dim criteriaArray() As Variant Dim i As Long ' 设置工作表对象Set ws = ThisWorkbook.Worksheets("Sheet1")' 设置数据范围(B 列) Set rngData = ws.Range("B2:B" & ws.Cells(ws.Rows.Count, "B").End(xlUp).Row) ' 设置筛选条件范围(C 列至 F 列)Set rngCriteria = ws.Range("C2:F2")' 将多个关键词存储在数组中 criteriaArray = Array("关键词1", "关键词2", "关键词3") ' 可根据需要修改关键词' 清除之前的筛选结果 ws.AutoFilterMode = False ' 将筛选条件写入临时区域For i = LBound(criteriaArray) To UBound(criteriaArray) rngCriteria.Offset(1, i).Value = criteriaArray(i)Next i' 设置结果范围(G 列) Set rngResult = ws.Range("G1").CurrentRegion ' 执行高级筛选 rngData.AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=rngCriteria, Unique:=False' 将筛选结果复制到结果范围 rngData.SpecialCells(xlCellTypeVisible).Copy rngResult ' 清除筛选 ws.AutoFilterMode = False' 清除临时区域的筛选条件 rngCriteria.ClearContentsEnd Sub
来看看咱们自带的免费版的效果:
Sub AdvancedFilterExample() Dim ws As Worksheet Dim rngData As Range Dim rngCriteria As Range Dim rngResult As Range' 设置工作表 Set ws = ThisWorkbook.Sheets("Sheet1")' 将"Sheet1"替换为实际的工作表名称' 设置数据区域范围(假设数据从B2开始) Set rngData = ws.Range("B2:B" & ws.Cells(ws.Rows.Count, "B").End(xlUp).Row) ' 创建筛选条件区域,放置关键词(假设关键词在D1:D3) Set rngCriteria = ws.Range("D1:D3")' 创建筛选结果的区域(假设结果从F2开始) Set rngResult = ws.Range("F2").Resize(, 1) ' 执行高级筛选 rngData.AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=rngCriteria, CopyToRange:=rngResult, Unique:=False' 清除筛选条件 rngData.AutoFilter ' 清除筛选结果区域的内容 rngResult.ClearContentsEnd Sub
2段代码都带一点点小问题【估计是我语文水平太差,描述不清楚】,留给的读者修改下吧。
最终效果:
页:
[1]