VBA字典(dictionary)

article/2025/9/27 15:22:16

这是我看到的最简单明了的Excel VBA字典(dictionary)的教程,把字典的应用,用短短几百字,全部道尽,简!但精彩!原文如下:

当年我(原作者:彭希仁)向LDY版主求教字典的时候,他老人家总结了一句话“呼之即来,挥之即去”
即学会d(a)=s  和  s=d(a) 就差不多了,忘记ADD存在。

一、定义字典

Set d = CreateObject("Scripting.Dictionary")

二、呼之即来,挥之即去

d("张三“)=1     '相当于给字典赋值,张三过来(没有就生成)拿个1站一边去
d("李四”)=2     '相当于给字典赋值,李四过来(没有就生成)拿个2站一边去
d("李四”)=3     '相当于改变值,字典中已经有李四了,李四跑过来,丢下2换个3站一边去
注:这时字典中有两个人的存在,张三=1 和 李四=3,相当于实现了去重复的功能

s=d("张三")    's=1   即叫了声张三,张三就告诉你他拿的是1
s=d("李四")    's=3   即叫了声李四,李四就告诉你他拿的是3
s=d("麻子")    's=""  没有找到麻子怎么办呢,字典里就自动生成一个麻子d("麻子") =“”,告诉你他手上是空的
注:这时字典中有三个人的存在,张三=1 ; 李四=3;麻子=“”

三、将字典里的东西变成数组

arr= d.Keys    '把名字的集合按先来后到的原则放到一维数组里  arr(0)=“张三” ; arr(1)=“李四” ; arr(2)=“麻子”
arr1=d.Items      '把名字对应的值的集合按先来后到的原则放到一维数组里  arr1(0)=“1” ; arr1(1)=“3” ; arr1(2)=“”

四、查找字典中有没有这个人     

s=d.Exists(“张三”)  's=True  有的
s=d.Exists(“http://www.excelba.com”)  's=False  没有

五、清空数组

d.RemoveAll

是不是简单呢?

上文出处:http://club.excelhome.net/thread-926188-1-1.html

Sub 宏1()Set dic = CreateObject("Scripting.Dictionary") '字典For i = 1 To 10000If Not i Like "*4*" Thendic.Add i, "" '如果不包含“1”End IfNext iRange("a2").Resize(dic.Count, 1) = Application.WorksheetFunction.Transpose(dic.keys) '
End Sub
Tranpose工作表函数的用法实例,把一行多列的二维数组转换成一维数组。

Sub 宏2()Dim arr, arrtarr = Range("a1:j1")arrt = WorksheetFunction.Transpose(WorksheetFunction.Transpose(arr))
End Sub

e.g:

Sub 字典()Dim arr()Dim i As IntegerDim j As IntegerDim Mrow As IntegerDim rng As StringMrow = ActiveSheet.Range("A65536").End(xlUp).Rowrng = Range("A" & Mrow).Address(0, 0)Set d = CreateObject("scripting.dictionary")[B2:B65535] = ""arr = Range("A2", rng)For i = 1 To UBound(arr)'If i = 2 Thend(arr(i, 1)) = i'Else'd(arr(i, 1)) = ""'End IfNext i'Sheet1.Cells(2, 1).Resize(d.Count) = WorksheetFunction.Transpose(d.keys)'对字典进行循环K = d.keysV = d.ItemsFor j = 0 To d.Count - 1Sheet1.Cells(j + 1, 3) = K(j)Sheet1.Cells(j + 1, 4) = V(j)Next jd.RemoveAllSet d = NothingSet K = NothingSet V = Nothing
End Sub




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

相关文章

在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…

利用javascript动态生成表格及注释

记录学习第一天 &#xff1a;关于javascript如何动态的生成表格 css样式想节省时间就没写,所以只有基本样式。 html部分&#xff1a; 创建一个表格&#xff08;table&#xff09;的头部&#xff08;thead&#xff09;和数据&#xff08;tbody&#xff09;标签。 <table b…

JavaScript网页——动态生成表格

1.创建学生数据 分析&#xff1a;因为里面的学生数据都是动态的&#xff0c;我们需要js动态生成。这里我们模拟数据&#xff0c;自己定义好数据。数据我们采取对象形式存储。 var students [{name:吕小布,subject:JavaScript,score:100,},{name:张益达,subject:JavaScript,…

JavaScript 动态生成表格 案例

功能描述 在输入框中输入行和列&#xff0c;点击按钮&#xff0c;生成拥有对应行和列的表格。如下图所示&#xff1a; 分析 HTML界面设计 <body>行&#xff1a;<input type"text" id"row" /> 列&#xff1a; <input type"text"…

javascript动态生成表格 -- 案例

js动态生成表格 Draven 效果预览html部分css部分js部分 表格内容使用js生成 效果预览 html部分 <table border"1px" cellspacing"0" cellpadding"10"><thead><tr style"background-color: #999999; height: 60px">…

JavaScript中动态生成表格

1. 以下这个案例比较典型&#xff1a; 涉及到dom节点的操作&#xff0c;以及数组和对象的遍历方法 题目要求&#xff1a; 使用数组把学生数据模拟出来。动态创建行、单元格。为单元格填充数据。提供“删除”链接&#xff0c;可删除所在的行。 效果如下&#xff1a; html代码…

js 动态生成表格案例

<1>布局:一个table表格,表格分为两个部分,上面是thead表头,表头里面仅一行,有4列(th), 下面是tbody表格内容,要求tbody中的每一行都是用js动态创建的 <body> <table><thead><tr><th>姓名</th><th>科目</th><…

原生JS实现动态表格的生成

今天完成动态表格的生成&#xff0c;巩固知识&#xff0c;梳理一下思路。 首先我们创建表格和他的头部&#xff0c;后面根据数据动态生成插入进来。结构如下 <table cellspacing"1px" bgcolor"black"> <thead><tr><td>姓名</…

js动态表格创建

js动态表格创建 1、一个table表格&#xff0c;表格分为两个部分&#xff0c;上面是thead表头&#xff0c;表头里面仅一行&#xff0c;有3列&#xff08;th), 下面是tbody表格内容&#xff0c;要求tbody中的每一行都是用js动态创建的2、通过点击“生成”按钮&#xff0c;在div标…

JavaScript动态生成表格

源代码 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><meta http-equiv"X-UA-Compatible" content…