深圳office培训 深圳excel培训
深圳excel培训 深圳office培训
咨询服务
深圳office培训
深圳office培训
office培训
excel培训
ppt培训
vba培训
access培训
word培训
visio培训
project培训
outlook培训
数据库培训
深圳access培训
深圳sql培训
深圳office培训
 

vba搜索excel单元格的几种方法


2016年8月10日 作者: 来源:

 例如我要在C列查找H3单元格的姓名并在H4单元格中返回搜索姓名所在的行数,我可以使用Match函数返回查找单元格位置进行查找,只要在VBA代码窗口输入以下代码即可:
Sub 使用工作表函数查找姓名所在行()
Range(“H4”)=Application.Match(Range(“H3”),Range(“C:C”),0)
End Sub
又如我要在EXCEL2010工作表中,要根据H7单元格内容,在C列查找并返回该姓名所对应的年龄,并把查找的年龄填入到H8单元格中。我可以利用Vlookup函数返回搜索的内容,在VBA代码窗口中输入以下代码即可实现:
Sub 查找姓名对年龄()
Dim Mrow As Integer
Mrow=Range(“C:C”):Find(Range(“H7”)).Row
 Range(“H8”)=Range(“E” & Mrow)
End Sub
当我在运行该程序后,即可在H8单元格中根据姓名查找出目标的年龄。其中,Range(“C:C”).Find(Range(“H7”)).Row表示查找H7中的姓名在C列所在的行数;Range(“E” & Mrow)表示根据求出的行数和指定的列数得到所对应的年龄。我也可以使用工作表函数Vlookup进行查找,同样可实现根据姓名查找年龄,只要在VBA代码窗口输入以下代码即可实现:
Sub 使用工作表函数查找姓名对应的年龄()
  Range(“H8”)=Application.VLookup(Range(“H7”),Range(“C:E”),3,0)
End Sub
在EXCEL2010VBA中使用Vlookup函数和在工作表中使用的方法一样,也需要设置其4个参数,区别是在VBA中需要用VBA的单元格表示方法。

在EXCEL2010中当一个数据清单中有多个重复的信息时,此时我需要借助循环来实现重复查找。例如在EXCEL2010的工作表中,C列中有多个商品名称为“海尔冰箱”的商品,要求查找最后一个商品名称为“海尔冰箱”的入库价格并填入到G4单元格中。此时我可以在VBA中输入以下代码即可快速实现:
Sub 查找最新价格()
Dim i As Integer '定义i为整数,程序中i是C列中海尔冰箱的个数
Dim Mrg As Range '定义Mrg为单元格对象,Mrg作为查找的开始单元格
i = Application.CountIf(Range("C:C"), Range("G3"))
'调用工作表函数Count计算C列中海尔冰箱的个数
Set Mrg = Range("C3") '设置Mrg的初始单元格为C3,即在下面的查找过程中首先从C3开始查找
For s = 1 To i '要根据海尔冰箱的个数(i值)设置查询的次数
 Set Mrg = Range("C:C").Find(Range("G3"), Mrg)
'每一次新的查找都从查找到的单元格开始
Next s
Range("G4") = Mrg.Offset(0, 1) '单元格G4的值等于查找到的单元格右边一个单元格的值,即入库价格
End Sub
当我在运行该程序后,即可在G4单元格中查找出海尔冰箱的最后入库单价。Find(Range(“G3”),Mrg)中的第2个参数为查找的开始单元格,Mrg会随着查找时所代表的单元格不断更新,而且又利用更新过的Mrg作为新的查找起点。


阅读:1430 上一则:vba实现excel单元格的隐藏 下一则:vba选取特定单元格延伸的方法

返回前页 返回顶部
温馨提示:本中心是深圳较为专业office培训机构、咨询及报名请先预约,电话:0755-82124110。
深圳地址:深圳红荔路四川大厦1109B-1110(3号龙岗线通新岭地铁站A出口10米)
热线:0755-82124110(福田、南山、宝安) 0755-22205758(罗湖、龙岗、龙华) 13510024571(东莞、惠州、珠海、广州)
北京地址:北京清华大学华业大厦三区三楼 版权所有:深圳万博计算机教育 粤ICP备11006947号-1
 
深圳信息系统项目管理师培训
深圳信息系统项目管理师培训 欢迎咨询!
您好!请点击这里咨询万博教育
深圳万博吴老师
您好!请点击这里咨询万博教育
深圳万博史老师
 
深圳信息系统项目管理师培训
深圳信息系统项目管理师培训