EXCEL如何使用VBA一次罗列表中三省的员工姓名?
发布时间:2022-09-10 20:59:11
请罗列“四川省”、“湖南省”、“湖北省”三个省份员工的资料。
VBA代码如下:
Sub test()
‘定义变量
Dim rng As Range, RngTemp As Range, firstAddress As String
Dim i As Byte, findCell As Range, sh As Worksheet, shtname As String
‘将查找的目标设置为C2单元格到C列最后一个非空单元格赋予变量为rng
Set rng = Range([C2], Cells(Rows.Count, "C").End(xlUp))
‘循环赋予查找数组的每一个元素
For i = 0 To UBound(Array("四川省", "湖南省", "湖北省"))
‘开始查找数据,按值精确查找,不区分大小写
Set RngTemp = rng.Find(What:=Array("四川省", "湖南省", "湖北省")(i), LookIn:=xlValues, lookat:=xlWhole, MatchCase:=False)
‘ 如果找到目标,则赋予该目标的单元格地址给firstAddress
If Not RngTemp Is Nothing Then
firstAddress = RngTemp.Address
Do
‘变量findCell没有初始化,则需要初始化,否则合并查找到的数值
If findCell Is Nothing Then
Set findCell = RngTemp
Else
Set findCell = Union(findCell, RngTemp)
End If
‘查找下一个
Set RngTemp = rng.FindNext(RngTemp)
‘循环到不为第一个找到的目标地址为止
Loop While RngTemp.Address <> firstAddress
End If
Next i
‘如果查找的内容不为空,则选择查找到内容所在行,否则显示提醒
If Not findCell Is Nothing Then
findCell.EntireRow.Select
Else
MsgBox "没有找到符合条件的数据!"
Exit Sub
End If
‘防止错误
On Error Resume Next
‘把当前工作表的名称赋予shtname
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


猜你喜欢
- Word怎么打印指定页数?相信有用户遇到过想要打印Word文档时并不需要全部打印,而是需要打印指定几页,那么应该如何操作呢?下面小编就来和大
- PS切片工具怎么用?有时候我们制作的图片很大,想上传到网页是没办法的,我们只能把它切成一个个小块再上传,这就需要使用到PS的切片工具了。相信
- 有些小伙伴为了能够提高办公效率,会选择进行双显示器操作,可是在给安装了win11系统电脑外接双显示器的时候却出现了无法检测到其他显示器的问题
- 最近有很多win10用户反映说自己在玩游戏的时候,明明正常运行的游戏出现闪退的情况,而且闪退的现象已经不是第一次出现了,很影响用户的游戏体验
- WPS2016文档怎么保存为XML格式?wps默认的伯村格式是.doc,但是有的时候,必须使用xml格式的文件,该怎么把WPS的doc格式另
- 我们在wps表格中统计完成数据后,都需要检查一下有无错误或者重复的地方,为了方便,我们可以使用wps表格的快速查找功能将重复的数据筛选出来,
- 相信很多人会遇到这样的烦恼,自己的设备在性能上不足以运行最新版本的iOS(或用惯了当前的系统版本),但还是会不停的收到更新请求,一个不小心点
- 由于WinXP系统已被微软暂停服务,有时候经常会被一些恶意网站攻击,导致注册表被锁定,重装系统就不必了,既然是被网页的ActiveX控件锁定
- Win11任务栏自动合并怎么办?Win11任务栏怎么设置不合并?很多朋友更新到Win11系统后都不习惯,尤其是遇到使用时任务栏会自动合并的情
- 使用过暴风影音的朋友都知道,打开暴风影音之后,在窗口的右边会有影视列表和播放列表,这能够方便我们选择观看影片。不过有些朋友表示并不想看到这一
- win10操作系统桌面右下角有个白色方框怎么办?有一客户,电脑最近右下角老是跳出白色方框,之前我就让她把电脑重新启动一下,然后又好了,过了一
- 三星早些时候推出了Notebook系列笔记本之后就深受大家的喜爱,现在他们再接再厉推出了全新的Notebook 9笔记本,其中,13.3英寸
- 有的小伙伴在玩游戏的过程中可能就会遇到玩饥荒的时候电脑下方会显示任务栏的情况。对于这种问题小编觉得可能是因为我们计算机的相关设置问题,可以在
- iWatermark 是全球首屈一指的Mac,Windows,iPhone,iPad和Android数字水印应用程序。在几秒钟内
- Win10 xbox game bar无法打开/安装怎么办?Xbox Game Bar是Win10系统自带的游戏平台,最近有部分Win10用
- Win7系统添加扫描仪是一个非常简单的事情,但是很多用户不知道怎么添加,下面来看看详细的教程吧,需要的不要错过了哦。Win7系统添加扫描仪具
- 现在,大多数影院采用的都是杜比音效,因为它能够给我们带来更棒的听觉体验。不过,最近一位win8系统用户反馈自己也想在电脑上安装杜比音效,可是
- Win11系统中,很多功能用户还没完全摸清系统的操作,很多功能设置都还不是很了解,像有的用户就不知道怎么在Win11系统里更改声音输出设备,
- 现在很多用户都安装了最新的win11系统,我们都系统在一段时间都会进行更新,如果我们关闭了自动更新,但是没有彻底关闭,就可能会遇到win11
- 今天一个学员朋友问了个一个类似这样的问题,问题如下:要求是得到问号前的值。结果是这样的。数据有上百行。下面介绍三种方法,第一种是分列选中区域