欢迎来到爱乐透双色球手机追号_爱乐透手机版_爱乐透手机版下载! 联系我们 网站地图

爱乐透双色球手机追号_爱乐透手机版_爱乐透手机版下载

0379-65557469

爱乐透app下载
全国服务热线
0379-65557469

电话: 0379-65557469
0379-63930906
0379-63900388 
0379-63253525   
传真: 0379-65557469
地址:洛阳市洛龙区开元大道219号2幢1-2522、2501、2502、2503、2504、2505室 

爱乐透app下载
当前位置: 首页 | 咨询案例 > 爱乐透app下载

数组与字典第45讲:使用数组和字典,完结两个条件下数据查询

作者:admin 发布时间:2019-11-20 19:43:44 浏览次数:162
打印 收藏 关闭
字体【
视力保护色

我们好,今天咱们持续解说数组与字典解决计划,今天解说的是第45讲:使用数组和字典,完结两个条件下数据查询。其实关于这讲内容在前面也解说过,本讲内容仅仅代码不同,但咱们要多看看这些代码,对自己的思路,关于代码安排十分有用,许多时分,进程比成果更重要,咱们要多多的把握进程来完结咱们的成果。

实例:如下面数据,A B 列是数据源,E2:F2是要查询的数据,将成果填在G列。

咱们要先想想,上述的问题完结的手法:1 能够使用代码循环比较; 嗯啊哥哥不要2 数据库,这些都是能够的,代码我在之前文章中也解说过,今天咱们要使用字典,我们会发现代码愈加简练,简略,只要对字典了解了,那么代码也是不难的。下面看我给出的代码:

Sub mynzsz_45() '第45讲 使用数组和字典完结两个条件查询

Sheets("45").Select

Set mydic = CreateObject("scripting.dictionary")

'd.CompareMode = vbTextCompare '不区别字母大小写,此句子备用

'将数据明细,装入数组myarr

myarr = Sheets("45").[a1].CurrentRegion

'遍历数组myarr,将数据装入字典,留意此处的S是兼并条件作为字典的key值,字典的键值

For i = 2 To UBound(myarr)

For j = 2 To UBound(myarr, 2)

s数组与字典第45讲:使用数组和字典,完结两个条件下数据查询 = myarr(i, 1) & "@" & myarr(i, j)

mydic(s) = myarr(i, 3)

Next

Next

'将查询区域的数据装入数组brr

mybrr = Sheets("45").[e1].CurrentRegion

'兼并查询的两个条件成为一个条件字符串

For i = 2 To UBound(mybrr)

s = mybrr(i, 1) & "@" & mybrr(i, 2)

For j = 3 To UBound(mybrr, 2)

If mydic.exists(s) Then

mybrr(i, j) = mydic(s) '从字典中取s对应的条目

Else

mybrr(i, j) = "NO FIND" '不然回来假空

End If

Next

Next

'将数组mybrr回填

Sheets("45").[e1].CurrentRegion = mybrr

MsgBox "OK"

'开释字典内存

Set mydic = Nothing

End Sub

代码的截图:

代码解说:

1 上述进程完结了两个条件联合的查询。首先把源数据放到数组中,然后把待查询数据也放到数组中,一起完结在源数据中查找。

2 Set mydic = CreateObject("scripting.dictionary")

'd.CompareMode = vbTextCompare '不区别字母大小写,此句子备用

在上述代码中完结了创立字典,一起给出了比较的备用计划,假如需求启用不区别大小写,那么能够用此代码

3 myarr = Sheets("45").[a1].CurrentRegion

'遍历数组myarr,将数据装入字典,留意此处的S是兼并条件作为字典的key值,字典的键值

For i = 2 To UBound(myarr)

For j = 2 To UBound(myarr, 2)

s = myarr(i, 1) & "@" & myarr(i, j)

mydic(s) = myarr(i, 3)

Next

Next

上述代码将源数据放入数组后,将第一和第二的数据放到字典中作为键,将第三个数据作为对应的键值。

4 '将查询区域的数据装入数组brr

mybrr = Sheets("45").[e1].CurrentRegion

'兼并查询的两个条件成为一个条件字符串

For i = 2 To UBound(mybrr)

s = mybrr(i, 1) & "@" & mybrr(i, 2)

For j = 3 To UBound(mybrr, 2)

If mydic.exists(s) Then

mybrr(i, j) = mydic(s) '从字典中取s对应的条目

Else

mybrr(i, j) = "NO FIND" '不然回来假空

End If

Next

Next

上述代码将待查询数据放入数组,一起将第一和数组与字典第45讲:使用数组和字典,完结两个条件下数据查询第二数据兼并,在字典中找对应的键和键值,字典能够直达目的数组与字典第45讲:使用数组和字典,完结两个条件下数据查询地,这一点我们要充沛了解。

5 '将数组与字典第45讲:使用数组和字典,完结两个条件下数据查询数组mybrr回填

Sheets("45").[e1].CurrentRegion = mybrr

MsgBox "OK"

'开释字典内存

Set mydic = Nothing

将用于存储查询成果的数组回填并开释内存。

下面看代码的运转:

今天内容回向:

1 本讲内容完结两个条件查找要害数组与字典第45讲:使用数组和字典,完结两个条件下数据查询是什么?

2 在数据回填时,我为什么没有用CLEAR清空一下待填区域呢?

版权所有:洛阳市建设工程咨询有限责任公司 联系人:李经理 电话: 地址:洛阳市洛龙区开元大道219号2幢1-2522、2501、2502、2503、2504、2505室
版权所有 爱乐透双色球手机追号 辽ICP备114614507号-2