ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
300集Office 2010微视频教程 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 940|回复: 6

[原创] [抛砖引玉]根据账号查找接点人,依次类推

[复制链接]

TA的精华主题

TA的得分主题

发表于 2022-3-8 18:10 | 显示全部楼层 |阅读模式
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
本帖最后由 微风~雨 于 2022-3-8 18:16 编辑

[抛砖引玉额]恕我愚笨,最近处理了一单查找数据题,足足困扰了我三个小时,因之前未接触过此类
题目,思索近一个半小时方有思路,随后又在代码上测试一小时有余,方才解决此题,故想和论坛
坛友讨论,是否有另外可行方法,鄙人方法略显简陋,请见谅。
要求:1、根据会员账号在接点人列找到2个会员名,这2个会员名的会员账号又找到2个接点人,以此类退
    示例、1.首先找到第489行卢志爱的会员账号。
        2.查找卢志爱的会员账号,找到了刘维和谭银华
        3.再分别查找刘维和谭银华的账号
         ……以此类推
        5、就是每个会员账号都能查到两个接点人,这样排列下来(实际部分只能找到一个接点人
自从接触vba,在论坛遨游中学习了很多前辈经验,故也想献丑一番自己所学。
原文本不包含代码,代码在另外附件中。


示例

示例

原文本.zip

70.65 KB, 下载次数: 13

包含示范

代码答案.zip

96.4 KB, 下载次数: 14

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2022-3-8 20:38 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
本帖最后由 丸子不是小孩子 于 2022-3-8 22:07 编辑

另一方法,代码应该更加简洁,结果排序不一样,但内容是一样的。。。。//更新一下附件,有一个变量赋值是多余的

查找接点人.rar

83.96 KB, 下载次数: 18

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2022-3-8 22:46 来自手机 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
丸子不是小孩子 发表于 2022-3-8 20:38
另一方法,代码应该更加简洁,结果排序不一样,但内容是一样的。。。。//更新一下附件,有一个变量赋值是多 ...

好,感谢参与,自从加入论坛确实学到了不少,这次刚好交谈一下大家的代码,思路想到挺快的,代码可行性修改了一个多小时

TA的精华主题

TA的得分主题

发表于 2022-3-9 12:37 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
  1. Sub test()
  2.     Dim i%, j%, Cn, sql$, arr
  3.     Set Cn = CreateObject("ADODB.Connection")
  4.     Cn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Extended Properties=Excel 12.0;Data Source=" & ThisWorkbook.FullName
  5.     sql = "SELECT DISTINCT 账号 FROM [数据$]"
  6.     arr = Cn.Execute(sql).getrows
  7.     With Sheet2
  8.         [a1].CurrentRegion.Offset(1).ClearContents
  9.         For i = 0 To UBound(arr, 2)
  10.             j = .[a65536].End(3).Row + 1
  11.             sql = "SELECT * FROM [数据$] WHERE 账号='" & arr(0, i) & "' OR 接点人='" & arr(0, i) & "'"
  12.             .Cells(j, 1).CopyFromRecordset Cn.Execute(sql)
  13.         Next
  14.     End With
  15. End Sub
复制代码

TA的精华主题

TA的得分主题

发表于 2022-3-9 14:06 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
按理解。1,将接点人放进字典,并对账号进行不重复计数,等于2(大于2不知道算不算)才要,小于2的不要。2,然后对比账号,做个判断是否存在字典中?这样?

TA的精华主题

TA的得分主题

发表于 2022-3-10 09:56 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
看下,学习下

TA的精华主题

TA的得分主题

发表于 2022-3-10 17:26 | 显示全部楼层
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-5-23 01:37 , Processed in 0.036583 second(s), 13 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表