首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Excel VBA解读(159): 数据结构—字典对象基本操作

excelperfect 本文详细讲解Dictionary对象一些基本操作。 添加字典元素 使用Add方法,添加字典元素项。其语法为: 字典对象.Add Key, Item Add方法有两个参数。...dict.Add "2019-8-15", "考试" End Sub 从代码中可以看出,参数Key可以指定任意数据类型值,参数Item也可以指定任意数据类型值,甚至可以是数组、集合或者字典。...检查字典键是否存在 使用Exists方法检查指定键是否存在,其语法为: 字典对象.Exists(Key) 例如,代码: Sub testCheckKey() Dim dict As Object...图2 统计字典元素数 使用Count方法返回字典中元素数量,其语法为: 字典对象.Count 例如,代码: Sub testCount() Dim dict As Object Set...图3 删除某字典元素项 使用Remove方法可以删除指定字典元素项,其语法为: 字典对象.Remove Key 例如,代码: Sub testRemove() Dim dict As Object

1.9K21
您找到你想要的搜索结果了吗?
是的
没有找到

Excel VBA解读(161): 数据结构—字典对象操作示例

excelperfect 下面列举字典对象一些操作示例和技巧,进一步理解字典应用。...示例1:在一个键中存储多个值 在前面的讲解中,我们添加到字典元素都是一个键对应着一个值,如果我们想要在字典对应每个键中存储多个值,该怎样做呢?...经过前面一系列数据结构文章学习,大家一定会想到使用数组或者集合作为值。但是,还有更好办法,就是使用类模块。 如下图1所示,我们想要在不同字典键中分别存储图示工作表每行数据。 ?...'将数据存储到字典中 For i = 2 To lngLastRow Set oStud = New clsStudent oStud.StudentID...图2 示例2:获取唯一值 可以利用字典键唯一这个特性,来获取列表唯一值。例如下图3所示工作表,有多个重复数据,现在想要获取这些数据不重复值。 ?

1.8K20

Excel VBA解读(158): 数据结构—认识字典对象

学习Excel技术,关注微信公众号: excelperfect 在前面的一系列文章中,我们详细讲解了集合、数组和ArrayList,我们通常可以使用它们来存储成组数据,方便后面的操作。...接下来几篇文章,我们将详细讲解字典。 在VBA中,字典可以存储不同数据类型,并且每个元素都有唯一键,可以方便地访问字典元素,其包含属性和方法,能够更方便地操作数据。...创建字典对象 在标准VBA库中不包含Dictionary对象,因此要创建并使用Dictionary对象,先要连接到Dictionary对象所在库文件Microsoft Scripting Runtime...后期绑定 当然,也可以事先不设置对“Microsoft Scripting Runtime”库引用,而是使用CreateObject函数直接编写声明字典对象变量代码: Dim dict As Object...添加字典元素 使用Add方法来添加字典元素: dict.Add键, 值 注意,字典中应不存在要添加键。 修改字典元素值 dict(键) = 值 将指定键元素值修改为指定值。

2K20

Excel VBA解读(160): 数据结构—字典对象基本操作(续)

学习Excel技术,关注微信公众号: excelperfect 本文继续讲解Dictionary对象一些基本操作。...遍历字典元素 使用For Each循环来遍历字典元素,例如: Sub testForEachLoop() Dim dict As Object Set dict = CreateObject...图1 如果设置了早期绑定,那么还可以使用For循环来遍历字典元素,例如: Sub testForEachLoop() Dim dict As New Dictionary dict.Add...按键排序 可以使用下面的自定义函数对指定字典按键排序: '按键排序 Function SortByKey(dict As Object, _ Optional order As XlSortOrder...并使用了一个临时创建字典对象来过渡原字典键和值,可以使用F8键来逐语句运行代码体验该技巧。

2.7K50

Excel VBA解读(150): 数据结构—集合基本使用

学习Excel技术,关注微信公众号: excelperfect 运用集合,我们可以更高效地完成一些任务。例如,集合特点就是可以把很多值存储在一个集合中,而不需要使用多个变量来存储这些值。...下图1所示为存储学生分数工作表,如果使用变量来存储学生姓名和分数,那会使用很多变量。 ? 图1 我们可以使用集合来方便地存储这些数据。...Dim rng As Range '找到工作表中最后一行 lngLast =Worksheets("Sheet1").Range("A" &Rows.Count).End(xlUp).Row '遍历数据...,直接使用代码: colStudents("韩梅梅") 不必使用循环来一个个查找,非常方便!...,将集合传递给YourPro过程: Sub MyPro() '声明并创建集合 Dim colMy As New Collection '添加元素 colMy.Add "完美Excel

3.3K20

字典创建必须使用dict()函数(vba dictionary 嵌套)

巧用枚举类型来管理数据字典 文章目录 巧用枚举类型来管理数据字典 背景 数据结构表 使用枚举来管理数据字典 枚举增强使用(枚举里加方法) 枚举优化策略 第一步优化 : 枚举继承接口 第二步优化 :...增加 Bean 存枚举值, 使用享元模式存储 Bean 示例 使用枚举管理数据字典好处 git repo 背景 开发 Java 项目时, 数据字典管理是个令人头痛问题, 至少对我而言是这样, 我所在上一家公司项目里面对于字典管理是可以进行配置..., 他们是将字典表统一存放在一个数据库里面进行配置, 然后可以由管理员进行动态实现字典变更....VARCHAR gender VARCHAR 性别 : {男, 女} state VARCHAR 状态 : {未报到, 在职, 离职, 开除} 使用枚举来管理数据字典 枚举增强使用(...使用枚举管理数据字典好处 git 相关源码我已放到了github和gitee上管理, 上面有最新代码, 以及一些开发中功能, 欢迎大家下载查看 github: https://github.com

2.5K20

示例讲字典(Dictionary):获取唯一值

标签:VBA,Dictionary 字典(Dictionary)是一种通过键(key)和项(item)(注:键和项是字典术语)存储唯一项方法。...它是一种基于唯一键存储数据极好工具,它强大之处在于可以使用键来存储和合并数据。 在本文中,讲解如何在字典中捕获一个单元格区域并将其引用回Excel。...这里,将存储一个10行单元格区域,然后只输出该区域中唯一项目。 示例如下图1所示。获取其数据区域,使用字典数据存储,然后使用VBA数组提取我们选择需要获取唯一值列。...然后,一个简单For循环遍历数组中数据。 .Item行允许引用数组(ar),并将唯一数据放入字典中。....Item(ar(i, 1)) = .Item(ar(i, 1)) + ar(i, 3) 当循环完成后,所要做就是将数据字典提取到想要位置。

4.8K50

在 JavaScript 中优雅提取循环数据

翻译:疯狂技术宅 http://2ality.com/2018/04/extracting-loops.html 在本文中,我们将介绍两种提取循环数据方法:内部迭代和外部迭代。...stats.isDirectory()) { 10 logFiles(filePath); // (B) 11 } 12 } 13} 14logFiles(process.argv[2]); 从 A 行开始循环用来记录文件路径...它是 for-of 循环和递归组合(递归调用在 B 行)。 如果你发现循环某些数据(迭代文件)有用,但又不想记录它,那应该怎么办?...内部迭代 提取循环数据第一个方法是内部迭代: 1const fs = require('fs'); 2const path = require('path'); 3 4function logFiles....forEach()类似:logFiles() 内实现循环并对每个迭代值(行A)调用 callback。

3.6K20

VBA调用外部对象01:字典Dictionary(Key数据类型)

在前面的字典介绍中,我们添加Key时候,没有特别的去注意Key数据类型,我们先做1个这样演示操作: ?...我们将A列数据添加到1个字典中,和前面不同操作是,我们没有用数组,而是直接使用了单元格对象,我们也知道单元格缺省默认属性是Value,从图片中我们可以明显看到,数据是有重复: Sub TestDic3...2、如何避免 出现这种情况主要是我们没有明确指定我们想要处理数据数据类型,在For语句里,我们提到过要养成好习惯,要清楚自己正在操作是什么数据类型,需不需进行转换,要转换的话别依赖VBA自动处理...在我们上面要处理例子里,显然我们希望是把单元格里内容,也就是字符串数据添加到字典中,所以我们应该显示添加VBA.CStr: d.Add VBA.CStr(Cells(i, 1)), i 这样我们就算省略了缺省...3、小结 通过对字典Key添加,了解字典Key虽然什么数据类型都可以传递进去,但是作为使用者一定要清楚自己要添加数据是什么数据类型,并显示进行转换,避免不必要错误。

2.3K20

Excel VBA解读(134): 使用Excel函数提高自定义函数效率

本文将介绍在自定义函数中最有效方式是使用Excel内置函数。 线性插值是一种常用技术,用来查找缺失值或者计算两个值之间值。例如下表: ?...仔细分析这个自定义函数代码,实际计算仅使用2行数据,但要获得这2行数据必须将所有数据导入到数组并在第1列执行线性查找。...因此,让我们试着在自定义函数代码中通过Application.WorksheetFunction.MATCH来使用ExcelMATCH函数。由于数据已排序,所以可以使用近似匹配查找MATCH。...注意,有两种方法从VBA调用像MATCH这样Excel函数:Application.Match和Application.WorksheetFunction.Match。...小结:唯一比将所有数据一次性传递到VBA中更快方法是,使用Excel函数且仅传递给该函数所需最少数据

3K30

VBA一键提取4个excel社保文件指定单元格

VBA一键提取4个excel社保文件指定单元格 【问题】平时提取4个文件数据时,是打开一个文件,复制数据,再打开一个文件,复制数据,再打开一个文件,复制数据,再打开一个文件,复制数据,用时要...【说明】此代码只是适合自己,做为自己备份 第一步:取得4个文件路径 Sub toc_2() SelectFile ("C2") End Sub Sub toc_3() SelectFile...AllowMultiSelect = False '单选择 .Filters.Clear '清除文件过滤器 .Filters.Add "Excel...Filters.Add "All Files", "*.*" '设置两个文件过滤器 If .Show = -1 Then 'FileDialog 对象...Sheets("设置表").Range(rng) = .SelectedItems(1) End If End With End Sub 第二步:取得相关数据 Sub

47620

为什么python比vba更适合自动化处理Excel数据

每当有人发布关于 python 处理 Excel 数据文章,总会有人只看了标题就评论: "vba处理已经足够,完全没必要使用python"。...---- vba 使用数组+字典,就是高效率? 大部分不经思考,张口就反对 python 同学,都是对自己 vba "数组+字典" 技能有着迷之自信。...这时候最理想情况是,使用 vba 操作 Excel数据处理交给 Python,中间就需要一个桥梁把 vba 与 python 打通,这就是 xlwings 或其他类似的库最佳实践方式。...这就是提取逻辑能力. ---- 通常来说,如果一段代码有些数据不是固定,我们可以提取成函数参数,比如最简单数字计算: 分别定义3个参数,让你输入,但计算方式是固定 对于 vba 来说他同样可以做到...因为许多看似复杂流程,其实是由许多固定逻辑 + 变化逻辑 组成。 比如分组原理就类似 vba使用字典,这是相对固定,完全可以让库完成。

3.6K30
领券