VBA Dictionary引用
添加库引用
Microsoft Scripting Runtime
定义变量
dim dic as Dictionary
set dic = CreateObject("scripting.dictionary")
Sub 统计林权证()On Error Resume NextDim huZhu As StringDim yb As WorksheetDim jg As WorksheetSet yb = ThisWorkbook.Sheets("沙坪到户数")Set jg = ThisWorkbook.Sheets("结果") Dim startRow As IntegerDim hm As String Dim dic2 As DictionarySet dic2 = CreateObject("scripting.dictionary") For startRow = 6 To 7412 If yb.Cells(startRow, "j") <> "" Then'写入前一条,判断集合个数 If dic2.count > 0 Then jg.Cells(count + 2, 1) = huZhujg.Cells(count + 2, 2) = "'" & CStr(Join(dic2.Keys, ",")) '前面加上"'"确保前导0不被省略dic2.RemoveAll End IfhuZhu = yb.Cells(startRow, "j")If Trim(yb.Cells(startRow, "h").Value) <> "" Thendic2.Add CStr(yb.Cells(startRow, "h").Value), "" '添加至keyEnd IfDebug.Print "户主:" & huZhu Else'Debug.Print CStr(Cells(startRow, "h").Value)If dic2.Exists(CStr(yb.Cells(startRow, "h"))) Then '确保不被重复写入,若存在则放弃 ElseIf Trim(yb.Cells(startRow, "h").Value) <> "" Then dic2.Add CStr(yb.Cells(startRow, "h").Value), ""End IfEnd If End If Next startRow jg.Cells(count + 2, 1) = huZhujg.Cells(count + 2, 2) = CStr(Join(dic2.Keys, ",")) '将姓名与编号对应输出
End SubSub 写入结果()Dim wbName As StringDim dic As DictionarySet dic = CreateObject("scripting.dictionary") Dim yb As WorksheetSet yb = ThisWorkbook.Sheets("结果")Dim name As StringFor i = 2 To yb.UsedRange.Rows.count '将上面得到的结果再构造为集合,方便查找,比数组,循环嵌套更高效name = yb.Cells(i, 1)If dic.Exists(name) Then ' 可能一个户主出现多次dic.Item(yb.Cells(i, 1).Value) = dic.Item(yb.Cells(i, 1).Value) & "," & yb.Cells(i, 2)Else dic.Add yb.Cells(i, 1).Value, yb.Cells(i, 2).Value End IfNext i Debug.Print dic.count '验证'开始写入数据sh.Cells(3, 14) = "测试"For j = 3 To 10sh.Cells(j, "N").Value = dic.Item(sh.Cells(j, "G").Value)Debug.Print sh.Cells(j, "G"), dic.Item(sh.Cells(j, "G").Value)' Debug.Print dic.Item(sh.Cells(j, "G"))Next j
End Sub
VBA Dictionary引用相关推荐
- VBA dictionary的用法
1.VBA中创建字典. dictionary是保存数据键和项目对的对象. 下面代码示范如何创建 Dictionary 对象: Dim myd As Object Set myd = CreateObj ...
- VBA中引用单元格与区域
在Visual Basic中,Range对象既可表示单个单元格,也可表示单元格区域. 引用 含义 Range("A1") 单元格A1 Range("A1 ...
- 在VBA中引用excel的函数
在 Visual Basic 语句中可以使用大多数 Microsoft Excel 工作表函数.若要查看可以使用的工作表函数列表,请参阅 Visual Basic 可使用的工作表函数列表. 注意 一些 ...
- 使用打字稿绘图网格构建游戏3 5
Chapter III in the series of tutorials on how to build a game from scratch with TypeScript and nativ ...
- VBA Scripting.Dictionary常用方法
@VBA Dictionary常用方法 如何插入一段漂亮的代码片 代码片. Sub test()Dim t1 as Object''定义类型Set t1 = CreateObject("Sc ...
- 建立数组并写入数据_VBA数组与字典解决方案第37讲:在VBA中字典的应用
大家好,我们今日继续讲解VBA数组与字典解决方案第37讲内容:在VBA中字典的应用.对于字典,也许许多的朋友对此比较陌生,在有的语言里字典也称之为MAP,应用也是比较广泛的. 字典,其实就是一些&qu ...
- 调试Excel VBA代码
调试Excel VBA代码 目录 1编译错误 2运行中出错或者运行结果错误 Excel VBA出错时给出的错误信息极少,需要充分利用各种工具来进行调试. 1.编译错误 常见的编译错误有: 错误 ...
- VBA与Excel内置的函数
了解VBA与Excel内置的函数,能够使我们处理起任务来事半功倍.这些函数不仅使用方便,而且效率一般都比较高(有些是例外的,特别是某些工作表函数),比我们自己写的要高效的多. VBA内置的函数 VBA ...
- python函数参数的引用传递_Python初学者笔记(八):函数参数的值传递和引用传递...
函数参数的值传递和引用传递 像我们最熟悉的 C 语言,再写函数参数的同时需要规定函数参数到底是值传递还是引用传递.引用传递导致该参数在函数内的修改出了函数之外也会生效,值传递所有的修改都不会体现到函数 ...
最新文章
- Route 66地图安装的一个简单方法,在N70上验证过
- 深度学习核心技术精讲100篇(二十四)-简单谈下深度学习在中文分词中的应用
- 趣链 BitXHub跨链平台 (2)跨链网络拓扑
- TCP/IP的二层负载
- jBPM和Drools工作台中的用户和组管理
- 这些 Linux 技巧大大提高你的工作效率
- mysql做wp网站_mysql做wp网站
- python基础语法实验报告小结_Python基础小结
- 记一次nginx反向代理做转发遇到的坑
- ASCII 控制符意义说明
- servlet使用jsp内置对象
- 【渝粤教育】电大中专消费者行为学_1作业 题库
- 主数据管理(MDM)的成熟度
- java jar apktool,gradle 构建apktool.jar
- linux安装so共享动态库文件下载,linux下的共享库(动态库)和静态库
- instagram架构_Facebook如何收购Instagram内幕故事
- 改善内部客户服务的 3 个技巧
- swing标题边框(TitleBorder)
- 八卦一下黄晓明和Angelababy的电话号码
- 代餐行业鱼龙混杂暴利驱动微商形成产业链
热门文章
- LIBCURL上传文件, 下载文件,打开网页,POST数据,支持https等一系列函数方便各种模拟登陆注册账户
- 如何设计一个好的 Windows 8 应用?
- siege 用户登录_siege
- C语言之单链表打印(遍历),查询,定位,插入,删除,链表长度
- LWN: 使用DAMON调整LRU-list!
- 小程序 下拉刷新 上拉触底加载数据
- java计算机毕业设计销售人员绩效管理系统源码+数据库+系统+lw文档+mybatis+运行部署
- js接口 抽象类 在web开发当中的应用
- mongo 副本集部署
- 代码审计--1--代码审计基础