ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 字典查重并保存数据!万分感谢!

[复制链接]

TA的精华主题

TA的得分主题

发表于 2022-5-16 16:54 | 显示全部楼层 |阅读模式
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
求教老师,帮忙一下!万分感谢!

这个是VBA代码,真心想学!买了书还看不懂,先谢谢老师了!
附件已上了!再次感谢!

字典搜索并保存.zip

14.97 KB, 下载次数: 15

TA的精华主题

TA的得分主题

发表于 2022-5-16 19:09 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
image.png

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2022-5-16 19:29 | 显示全部楼层
  1. Private Sub CommandButton1_Click()
  2.     Dim i%, j%, endRow%, dwNum%, s$, arr, brr(), d As Object
  3.     Set d = CreateObject("Scripting.Dictionary")
  4.     arr = Sheet2.[c2].CurrentRegion: dwNum = UBound(arr)
  5.     For i = 2 To UBound(arr)
  6.         s = arr(i, 11): d(s) = ""
  7.     Next
  8.     arr = Sheet1.[c2].CurrentRegion
  9.     For i = 2 To UBound(arr)
  10.         If arr(i, 12) <> "" Then
  11.             s = arr(i, 12)
  12.             If Not d.exists(s) Then
  13.                 d(s) = i: endRow = endRow + 1
  14.                 ReDim Preserve brr(1 To 13, 1 To endRow)
  15.                 For j = 1 To 13
  16.                     brr(j, endRow) = arr(d(s), j + 1)
  17.                     brr(11, endRow) = "'" & arr(d(s), 12)
  18.                 Next
  19.             End If
  20.         End If
  21.     Next
  22.     With Sheet2
  23.         i = UBound(brr, 2)
  24.         .Rows("2:" & i + 1).Insert Shift:=xlDown
  25.         .Rows("2:" & i + 1).RowHeight = 13.5
  26.         .Rows("2:" & i + 1).Font.Bold = False
  27.         .Range("c2").Resize(i, UBound(brr)) = Application.Transpose(brr)
  28.         i = .Cells(Rows.Count, "m").End(xlUp).Row - 1
  29.     End With
  30.     MsgBox "共计" & i & "人", , "提示"
  31. End Sub
复制代码


字典搜索并保存.zip

23.45 KB, 下载次数: 15

评分

2

查看全部评分

TA的精华主题

TA的得分主题

发表于 2022-5-16 19:58 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
代码审核中,请稍候下载。。。
请楼主参考。。。
2022-05-16_195734.png

字典搜索并保存.rar

22.44 KB, 下载次数: 22

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2022-5-17 09:58 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
gwjkkkkk 发表于 2022-5-16 19:58
代码审核中,请稍候下载。。。
请楼主参考。。。

太棒了!是我想要的效果,就是还有一个问题还请帮忙,就是怎么忽略M列空白单元格呢?
因为我看了一下,有把空置的也直接保存进去了

TA的精华主题

TA的得分主题

发表于 2022-5-17 10:23 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
yjgy6669 发表于 2022-5-17 09:58
太棒了!是我想要的效果,就是还有一个问题还请帮忙,就是怎么忽略M列空白单元格呢?
因为我看了一下, ...

请楼主参考。。。
2022-05-17_102051.png

TA的精华主题

TA的得分主题

 楼主| 发表于 2022-5-17 10:36 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2022-5-17 12:00 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2022-5-17 12:30 | 显示全部楼层
Private Sub CommandButton1_Click()
    Application.ScreenUpdating = False                         '关闭屏幕更新
    Dim d As Object, arr, brr, i, count1
    Set d = CreateObject("scripting.dictionary")               '建立字典
    arr = Sheets("数据库").Range("M1:M" & Sheets("数据库").[m65535].End(xlUp).Row)
    brr = Sheets("有效").Range("M1:M" & Sheets("有效").[m65535].End(xlUp).Row)
    count1 = 0
    For i = 1 To UBound(arr)                                   '装入字典
        d(arr(i, 1)) = ""
    Next i
    For i = 3 To UBound(brr)
        If brr(i, 1) <> "" Then
            If Not d.exists(brr(i, 1)) Then
                count1 = count1 + 1
                Sheets("数据库").Range("C2:O2").Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove    '下移原有数据
                Sheets("有效").Range("C" & i & ":O" & i).Copy Sheets("数据库").Range("C2")    '复制新人员信息
            End If
        End If
    Next i
    Set arr = Nothing
    Set brr = Nothing
    Set d = Nothing
    MsgBox "共计  " & count1
    Application.ScreenUpdating = True
End Sub

评分

1

查看全部评分

TA的精华主题

TA的得分主题

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

本版积分规则

关闭

最新热点上一条 /1 下一条

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

GMT+8, 2024-4-25 03:08 , Processed in 0.036868 second(s), 13 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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