ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[讨论] 万帖成专家之不重复处理

[复制链接]

TA的精华主题

TA的得分主题

发表于 2018-12-24 16:52 | 显示全部楼层 |阅读模式
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
1   提取不重复值
2   统计重复次数
3   分类汇总
4   多级联动
5   比对与匹配

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-12-24 16:52 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
  1. 'http://club.excelhome.net/thread-1145518-2-1.html
  2. Sub 根据内表A列匹配外表A列_提取外表B列的数据_同夹_多薄_指定表_LEFT_JOIN()
  3.     Application.ScreenUpdating = False
  4.     Set Fso = CreateObject("Scripting.FileSystemObject")
  5.     ActiveSheet.UsedRange.Offset(2, 1).ClearContents
  6.     For Each 外薄 In Fso.GetFolder(ThisWorkbook.Path).Files
  7.         If 外薄.Name Like "*.xls" And 外薄.Name <> ThisWorkbook.Name Then
  8.             计数器 = 计数器 + 1
  9.             If 计数器 = 1 Then
  10.                 Set 连接 = CreateObject("adodb.connection")
  11.                 连接.Open "Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties='Excel 8.0;hdr=no';Data Source=" & 外薄
  12.                 SQL = "select b.f2 from [Excel 8.0;hdr=no;Database=" & ThisWorkbook.FullName & ";].[" & ActiveSheet.Name & "$a4:a" & [a65536].End(xlUp).Row & "] a left join [清算表$a3:b] b on a.f1=b.f1"
  13.             Else
  14.                 SQL = "select b.f2 from [Excel 8.0;hdr=no;Database=" & ThisWorkbook.FullName & ";].[" & ActiveSheet.Name & "$a4:a" & [a65536].End(xlUp).Row & "] a left join [Excel 8.0;hdr=no;Database=" & 外薄 & ";].[清算表$a3:b] b on a.f1=b.f1"
  15.             End If
  16.             Cells(4, 计数器 + 1).CopyFromRecordset 连接.Execute(SQL)
  17.             Cells(3, 计数器 + 1) = Replace(外薄.Name, ".xls", "")
  18.         End If
  19.     Next 外薄
  20.     Set Fso = Nothing
  21.     连接.Close
  22.     Set 连接 = Nothing
  23.     Application.ScreenUpdating = True
  24. End Sub
复制代码

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-12-24 17:31 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
  1. 'http://club.excelhome.net/thread-1195938-1-1.html
  2. Sub 同夹多薄多表_AB列双条件分类_C列汇总_ADO加字典法()
  3.     Dim 结果数组(1 To 65530, 0 To 2)
  4.     Set 字典 = CreateObject("scripting.dictionary")
  5.     路径 = ThisWorkbook.Path & "": 外薄 = Dir(路径 & "*.xls")
  6.     Do While 外薄 <> ""
  7.         If InStr(外薄, ThisWorkbook.Name) = 0 Then
  8.             Set 连接 = CreateObject("ADODB.Connection")
  9.             连接.Open "Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties=Excel 8.0;Data Source=" & 路径 & 外薄
  10.             Set 记录 = 连接.OpenSchema(20)
  11.             Do Until 记录.EOF
  12.                 If 记录.Fields("TABLE_TYPE") = "TABLE" Then
  13.                     外表 = Replace(记录("TABLE_NAME").Value, "'", "")
  14.                     If Right(外表, 1) = "$" Then
  15.                         SQL = "select * from [" & 外表 & "] where 物品 is not null"
  16.                         记录数组 = 连接.Execute(SQL).GetRows
  17.                         For 行 = 0 To UBound(记录数组, 2)
  18.                             条件列 = 记录数组(0, 行) & 记录数组(1, 行)
  19.                             If Not 字典.Exists(条件列) Then
  20.                                 计数器 = 计数器 + 1
  21.                                 字典(条件列) = 计数器
  22.                                 For 列 = 0 To 2
  23.                                     结果数组(计数器, 列) = 记录数组(列, 行)
  24.                                 Next
  25.                             Else
  26.                                 结果数组(字典(条件列), 2) = 结果数组(字典(条件列), 2) + 记录数组(2, 行)
  27.                             End If
  28.                         Next
  29.                     End If
  30.                 End If
  31.                 记录.MoveNext
  32.             Loop
  33.         End If
  34.         外薄 = Dir()
  35.     Loop
  36.     ActiveSheet.UsedRange.Offset(1).ClearContents
  37.     [a2].Resize(计数器, 3) = 结果数组
  38.     记录.Close: Set 记录 = Nothing
  39.     连接.Close: Set 连接 = Nothing
  40. End Sub
复制代码

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-12-28 17:19 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2019-1-7 11:46 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2019-1-22 09:28 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
楼主,请你完成我的程序!

TA的精华主题

TA的得分主题

发表于 2019-4-27 13:58 | 显示全部楼层
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-16 11:44 , Processed in 0.031305 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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