首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

巧妙利用VBA 一键完成EXCEL双值查询-《大数据查询之八,双列唯一查询实现》

在查询过程中经常会用到两个值的查询,即要满足条件A,又要满足条件B,符合的这类的查询条件称之为双值查询,如何实现呢?不急,VBA会让你一键搞定。

此系列文章写道这里已经逐渐深入的展开了对VBA的代码的利用方法,不需要你理解代码的意义,只要跟着我,就会实现。

好了,不多说了,上代码:

一:在VBA编译器中拷贝下面的代码:一定要和下面的截图比对一下,有时在文章发表时会发现字符不全。

Sub KK2() 'AB唯一查

Dim bcontinue As Boolean

Dim mysearch As Range

Dim myfind As Range

Dim fristmyfind As String

Sheets("CBOM").Select

Sheets("CBOM").Range("c2 : d3000").Select

Selection.ClearContents

i = 2

Do While Cells(i, 1) ""

Cells(i, 1).Select

bcontinue = True

Set mysearch = Sheets("M").Range("A1 : A" & Sheets("M").Range("A1").End(xlDown).Row)

Set myfind = mysearch.Find(what:=Cells(i, 1), LookIn:=xlValues, lookat:=xlWhole)

If Not myfind Is Nothing Then fristmyfind = myfind.Address

Do Until myfind Is Nothing Or Not bcontinue

If Cells(i, 2) = Sheets("M").Cells(myfind.Row, 2) Then

Cells(i, 3) = Sheets("M").Cells(myfind.Row, 3)

Cells(i, 4) = Sheets("M").Cells(myfind.Row, 4)

Cells(i, 5) = Sheets("M").Cells(myfind.Row, 5)

Cells(i, 6) = Sheets("M").Cells(myfind.Row, 6)

Exit Do

End If

Set myfind = mysearch.FindNext(myfind)

If myfind.Address = fristmyfind Then bcontinue = False

Loop

Set myfind = Nothing

i = i + 1

Loop

Set mysearch = Nothing

MsgBox ("OK!")

End Sub

截图如下:

图一

好了,我们分别再命名两个工作表为“CBOM”“M”,”CBOM”放要查询的数据,M里放基础数据,建立一个按钮,选中,右键,关联到宏kk2.

二:M里放基础数据,

图二

三:”CBOM”放要查询的数据,建立一个按钮,选中,右键,关联到宏kk2.

图三

四:下面测试一下:

图四

看测试结果,是不是很方便呢?

世界需要懒人,生命才会GO GO GO GO GO ,正如奇妙的go语言,此平台会陆续推出更多的精彩内容,和大家分享。

分享成果,随喜正能量

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180404A1TAHN00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券