VBA: 字典的介绍与实例

article/2025/9/27 13:34:42

基本语句

Sub dictest()' 字典简介
' 字典对象相当于一种联合数组,它是由具有唯一性的关键字(Key)和它的项(Item)联合组成
' VBA字典有6个方法Add , Keys, Items, Exists, Remove, RemoveAll
' VBA字典有4个属性Count , Key, Item, CompareMode' 创建字典"d"
Dim d As Object
Set d = CreateObject("Scripting.Dictionary")' 添加
d.Add "a", "example1"
d.Add "b", 9
'd.Add "b", 7 'add重复key会报错
d("b") = 7    '这样会直接覆盖,不会报错
'd.Item("b") = 7 '与上者相同
d("c") = "example2"'通常使用Sting文本字符串作为字典key关键词,也可以使用数字、数值作为key
'速度:纯数字>纯文本字符>>>文本/数值混合型' 输出
Cells(1, 1) = d("a")
'Cells(1, 1) = d.Item("a") '与上者相同
Cells(1, 2) = d("b")
Cells(1, 3) = d("c")' 字典成员个数
Cells(1, 4) = d.Count'移除
d.Remove ("b")
'd.RemoveAll  '移除所有' key是否存在
Cells(2, 1) = d.Exists("b")
d.Add "b", 7
Cells(2, 2) = d.Exists("b")' 替换key
d.Key("a") = "e"'所有key所在的数组和所有item所在的数组
d_keys = d.Keys
Cells(3, 1) = d_keys(0)
Cells(3, 2) = d_keys(1)
d_items = d.Items
Cells(4, 1) = d_items(0)
Cells(4, 2) = d_items(1)'更改字符串关键字比较时所使用的比较模式
'd.CompareMode = 0(二进制)/1(文本)/2(数据库)End Sub

结果如下
字典1

实例

'获取不重复的name和每个name的income总计Sub dictest1()Dim data_count As Long
data_count = 188Dim data_name, data_income, idata_name = Application.Transpose(Worksheets("数据").Cells(2, 1).Resize(data_count, 1))
data_income = Application.Transpose(Worksheets("数据").Cells(2, 2).Resize(data_count, 1))Dim d1 As Object
Set d1 = CreateObject("Scripting.Dictionary")For i = 1 To data_countIf d1.exists(data_name(i)) Thend1.Item(data_name(i)) = d1.Item(data_name(i)) + data_income(i)Elsed1.Item(data_name(i)) = data_income(i)End If
Nextd1_keys = d1.keys
d1_items = d1.items
Worksheets("结果").Cells(2, 1).Resize(UBound(d1_keys) + 1, 1) = Application.Transpose(d1_keys)
Worksheets("结果").Cells(2, 2).Resize(UBound(d1_items) + 1, 1) = Application.Transpose(d1_items)End Sub

字典2
字典3


http://chatgpt.dhexx.cn/article/yRhVXC8Y.shtml

相关文章

VBA dictionary的用法

1.VBA中创建字典。 dictionary是保存数据键和项目对的对象。 下面代码示范如何创建 Dictionary 对象: Dim myd As Object Set myd CreateObject("Scripting.Dictionary") d.Add "a", "Athens" ’添加键和项目。 d.Add "b…

VBA字典对象操作技巧

VBA 中集合的功能比较弱,常见的有数组 (array) 、集合 (Collection)和字典,其中字典是 Key-Value Pair 类型的数据结构,适合按 Key 存储和查找。本篇介绍字典的操作方法。 VBA 语法本身并没有字典这种数据结构,需要引…

VBA 二维数组和字典

数据源: 二维数组和字典的主要使用方法 Sub test()Dim dict As ObjectSet dict CreateObject("Scripting.Dictionary")Set sh Worksheets("Sheet3")Set Rng sh.Range("A1:E" & sh.Range("E1").End(xlDown).Row)sh.Range("…

【原创】VBA学习笔记(313)VBA字典相关:遍历字典,用key查item, 用item查key的方法

1 字典的遍历方法 即使是后期绑定,也可以用 for each i in dict1.keys() 这里用到的 dict1.keys() 但不是 dict1.keys(i) 是可以的 Sub test_dict11()Dim dict1 As Object Set dict1 CreateObject("scripting.dictionary")dict1.Add 1, "h&qu…

【Excel VBA和Python对照学习】创建字典

Excel VBA和Python双语对照学习 我们从小学习语文,都用过字典。查字典时可以从第一页开始,一页一页地往下找,直到找到为止。这样做明显效率低下,特别是字的位置比较靠后的时候。所以查字典时不这样做,而是根据目录直接…

vba中字典的用法

字典对象的方法有6个: Add 添加一条关键字与条目 Keys 返回所有关键字(形成1维数组) Items 返回所有条目(形成1维数组) Exists 关键字是否存在(TRUE/FALSE) Remove 移除关键字与对应的条目 RemoveAll 移除所有关键字与对应的条 注意: 字典对象的属性有4…

Excel VBA Dictionary excel vba 字典大全

Excel VBA Dictionary - A Complete Guide - Excel Macro Mastery A Quick Guide to the VBA Dictionary FunctionParamsEarly binding reference“Microsoft Scripting Runtime” (Add using Tools->References from the VB menu)Declare (early binding)Dim dict As Scr…

vba字典学习案例

一、案例概述: 本次案例主要讲解字典的学习和应用,通过使用字典的方式来将每一行不重复的数值进行汇总形成一个字符串,且将该字符串展示到指定单元格中。二、案例展示: (1)源数据: (…

VBA字典(dictionary)

这是我看到的最简单明了的Excel VBA字典(dictionary)的教程,把字典的应用,用短短几百字,全部道尽,简!但精彩!原文如下: 当年我(原作者:彭希仁)向LDY版主求教字典的时候,他…

在Excel VBA中使用字典

序言 VBA的基础数据类型里面并没有字典类型,但字典其实在很多应用场景中都很有用,那么如何在VBA中使用字典,本文就用几个例子和大家交流探讨一下。 场景1 某个医院每天都会从不同的制造商那里进三种材料中的一种,每天的进价都有…

VBA -[知识点]: 字典

VBA字典 记录一次VBA字典的使用部分代码 1. VBA 中创建一个字典对象2. 字典对象添加key 和 value3. 获取字典对象的key list4. 判断是否存在某个key5. 修改字典值6. 修改字典key 名称6. 删除某个item7. 删除所有item 记录一次VBA字典的使用 部分代码 Public Sub MainRun()1. …

VBA字典(详解,示例)

文章目录 创建字典对象字典的属性|方法案例去重求和计数匹配key的组合和分割字典value多字段累加字典求和和计数同时进行类似sql的join操作 创建字典对象 后期绑定:方便代码在其他电脑上运行,推荐。 dim dic as object Set dic CreateObject("scr…

JavaScript 动态生成表格

要求&#xff1a; HTML标签只写一行表头通过JS来写动态的表格&#xff08;有多少组数据&#xff0c;就自动创建多少行表格&#xff09;为学习和演示&#xff0c;采用固定的数据&#xff0c;不涉及调用后台数据 实现效果&#xff1a; 代码实现&#xff1a; <!DOCTYPE html…

利用JS代码完成动态生成表格案例及解析

思路&#xff1a; 代码&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport" content&…

js自动生成html报表,JavaScript实现动态生成表格

本文实例为大家分享了JavaScript实现动态生成表格的具体代码&#xff0c;供大家参考&#xff0c;具体内容如下 功能描述 在输入框中输入行和列&#xff0c;点击按钮&#xff0c;生成拥有对应行和列的表格。如下图所示&#xff1a; 分析 HTML界面设计 行&#xff1a; 列&#xf…

JavaScript 动态生成表格 及删除表格

创建 表格表头 <body> <table> <thead> <tr> <td>序号</td> <td>姓名</td> <td>性别</td> <td>年龄</td> <td>地址</td> <td>删除</td> </tr> </thead> <t…

js动态生成表格实例

效果图 代码 <!DOCTYPE html> <html> <body> <div><h1>动态生成表格</h1><div id"table1">行&#xff1a;<input type"text" id"h"/>列&#xff1a;<input type"text" id"…

在html中生成动态表格数据,JavaScript实现网页动态生成表格

JavaScript(JS)网页–动态生成表格,供大家参考,具体内容如下 在网页中,动态生成列表的内容,将数组中的object加入到列表中(没学到数据库)。在HTML中创建thead,然后通过JavaScipt动态生成tbody。并且在每行最后申城一个单元格,加入删除操作,点击删除可以删除此行。动态生…

使用JS动态生成表格

代码如下&#xff1a; <!DOCTYPE html> <html> <head><meta charset"utf-8" /><title></title><script>var bgColor;var list [{ id: 1, country: 中国, capital: 北京,},{ id: 2, country: 美国, capital: 纽约,},{ id…

html动态生成表格源码,JavaScript动态生成表格的示例

要求&#xff1a; HTML标签只写一行表头 通过JS来写动态的表格(有多少组数据&#xff0c;就自动创建多少行表格) 为学习和演示&#xff0c;采用固定的数据&#xff0c;不涉及调用后台数据 代码实现&#xff1a; HTML内容&#xff1a; 姓名科目成绩操作 CSS内容&#xff1a; tab…