Excel |
您所在的位置:网站首页 › VBa查询条件格式相符合的access › Excel |
应用场景 查找符合多个条件的单元格,并复制出来
知识要点 1: Rng.find \ findnext Range.Find 方法 在区域中查找特定信息。 2:Do Loop While 查找 知道附合某个条件时终止 3:sheets.add 新建工作表
Sub 一次罗列表中三省员工的姓名() 'find循环法 Dim rng As Range, tngtemp As Range, firstaddress As String Dim i As Byte, findcell As Range, shtname As String, sht As Worksheet '将待查找的目标区域C2列到C列最后一个非空单元格赋予对象变量 Set rng = Range([c2], Cells(Rows.Count, "C").End(xlUp)) '将四川、湖南、湖北省转化为数组,然后循环数组每个元素,数组的基数默认为0,从0递增 For i = 0 To UBound(Array("四川省", "湖南省", "湖北省")) '开始查找数据,按值精确查找,不区分大小写 Set rngtemp = rng.Find(what:=Array("四川省", "湖南省", "湖北省")(i), LookIn:=xlValues, lookat:=xlWhole, MatchCase:=False) If Not rngtemp Is Nothing Then '如果变量rngtemp不再是nothing,即找到目标值 firseaddress = rngtemp.Address '记录第一个目标的地址 '只要找到单元格的地址不等于刚刚记录的地址,就一致循环下去 '如果变量firstcell未初始化则将查找结果赋予它,否则合并变量到查找到的单元格 Do If findcell Is Nothing Then Set findcell = rngtemp Else Set findcell = Union(findcell, rngtemp) Set rngtemp = rng.FindNext(rngtemp) Loop While rngtemp.Address = firstaddress End If Next i If Not findcell Is Nothing Then '如果变量findcell已经初始化,就选择所有目标的正行,否则提升退出程序 findcell.EntireRow.Select Else MsgBox "无符合条件的数据" Exit Sub End If On Error Resume Next shtname = ActiveSheet.Name '记录当前的工作表名称 Set sht = Sheets("查询结果") If err.Number 0 Then Sheets.Add after:=Sheets(Sheets.Count) Sheets(Sheets.Count).Name = "查询结果" Else Sheets(Sheets.Count).Cells.Clear End If Sheets(shtname).Select Selection.Copy Sheets(Sheets.Count).[a1] End Sub |
今日新闻 |
点击排行 |
|
推荐新闻 |
图片新闻 |
|
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |