excelvba常见字典用法集锦及代码详解(全)

合集下载

excel常见字典用法集锦及代码详解5

excel常见字典用法集锦及代码详解5

Excel 常见字典用法集锦及代码详解5实例4 拆分数据不重复一、问题的提出:有一列各种手机品牌型号的数据,要求编写一段代码,按照品牌划分成没有重复数据的三大类。

二、代码:Sub caifen()Dim Myr&, Arr, x&Dim d, d1, d2, i&, j&Set d = CreateObject("Scripting.Dictionary")Set d1 = CreateObject("Scripting.Dictionary")Set d2 = CreateObject("Scripting.Dictionary")Myr = [a65536].End(xlUp).RowArr = Range("a2:a" & Myr)Range("c2:e" & Myr).ClearContentsmy = Array("MOTO", "诺基亚", "三星", "索爱")gc = Array("OPPO", "联想", "天语", "金立", "步步高", "波导", "TCL", "酷派")For x = 1 To UBound(Arr)For i = 0 To UBound(my)If InStr(Arr(x, 1), my(i)) > 0 Thend(Arr(x, 1)) = ""GoTo 100End IfNext iFor j = 0 To UBound(gc)If InStr(Arr(x, 1), gc(j)) > 0 Thend1(Arr(x, 1)) = ""GoTo 100End IfNext jd2(Arr(x, 1)) = ""100:Next xRange("c2").Resize(UBound(d.keys) + 1, 1) = Application.Transpose(d.keys)Range("d2").Resize(UBound(d1.keys) + 1, 1) = Application.Transpose(d1.keys)Range("e2").Resize(UBound(d2.keys) + 1, 1) = Application.Transpose(d2.keys)End Sub三、代码详解1、Set d2 = CreateObject("Scripting.Dictionary") :针对三个不同的种类,创建d、d1、d2三个字典对象。

ExcelVBA——字典实用技巧

ExcelVBA——字典实用技巧

ExcelVBA——字典实⽤技巧最近写了⼀些⼩功能,对字典有了进⼀步的理解,太强⼤了!个⼈最近⽤过的字典应⽤有这么⼏个,写下来防⽌⾃⼰忘~同时⽅便⼤家⼀、查找重复⾏【原理】利⽤字典的exist⽅法,将数据加⼊字典时判断⼀下,如果已经存在,就说明当前数据为重复数据,应该删除【⽰例代码】Sub chongfu() '查重Dim i As LongDim endline As Long'定义⼯作表长度变量endline = Sheet3.Range("A30000").End(xlUp).Row '获取⼯作表Sheet3有数据的最后⼀⾏⾏号Set d = CreateObject("scripting.dictionary") '设定字典dFor i = endline To2Step -1'从最后⼀⾏开始,依次把各个字段拼接到⼀起(注意,这⾥我的需求是这⼏个字段拼在⼀起的字符串不允许重复,因此我先拼接再判重)'把所有字符串拼接到数组⾥If Sheet3.Cells(i, 2) <> ""Then'判断该⾏是否为空If IsError(Sheet3.Cells(i, 2)) = False Then'如果关键单元格不是#N/A,则进⼊字典设置x = Sheet3.Cells(i, 2) '******************设置赋给字典的变量,即需要去重的单元格!*******************If Not d.Exists(x) Then'判断是否重复d(x) = x '如果不重复,则把x定为itemElseSheet3.Rows(i & ":" & i).Delete Shift:=xlUp '如果字典中已有对应的item,则该⾏重复,删除重复的⾏End IfEnd IfEnd IfNextEnd Sub【效果展⽰】⼆、查找关键字【原理】最常见的应⽤,根据key来查找对应的item【⽰例代码】Sub DicFind() '查找编号对应的数据endline = Sheet3.Range("E100000").End(xlUp).Row '获取待匹配的数据区域长度Set d = CreateObject("Scripting.Dictionary") '设置字典dArr = Sheet3.Range("A2:B26975") '获得字典数据For i = 1To UBound(Arr) '设置sheet3 A列为字典关键字key,B列为字典关键字对应的值(item)If Arr(i, 1) <> ""Then'当A列不为空时,将item装⼊数组x = Arr(i, 1) '想以哪⼀列为关键字查找结果,就把x设置成哪⼀列的单元格d(x) = Arr(i, 2)ElseExit For'A列为空时,退出for循环End IfNextBrr = Sheet3.Range("$E$2:$F$" & endline) '将待查找的数据放⼊数组For j = 1To UBound(Brr)x = Brr(j, 1) '将E列的编号设为keyIf d.Exists(x) Then'如果字典中有对应的item,则将item写⼊数组brrBrr(j, 2) = d(x) '把查找到的item写⼊brr,这⾥对应F列End IfNextSheet3.Range("$E$2:$F$" & endline) = Brr '将匹配好的数据写回单元格End Sub【效果展⽰】建设中。

VBA字典用法集锦及案例代码详解

VBA字典用法集锦及案例代码详解

VBA字典用法集锦及案例代码详解dadaVBA字典用法集锦及案例代码详解前言凡是上过学校的人都使用过字典,从新华字典、成语词典,到英汉字典以及各种各样数不胜数的专业字典,字典是上学必备的、经常查阅的工具书。

有了它们,我们可以很方便的通过查找某个关键字,进而查到这个关键字的种种解释,非常快捷实用。

凡是上过EH论坛的想学习VBA里面字典用法的,几乎都看过研究过northwolves狼版主、oobird版主的有关字典的精华贴和经典代码。

我也是从这里接触到和学习到字典的,在此,对他们表示深深的谢意,同时也对很多把字典用得出神入化的高手们致敬,从他们那里我们也学到了很多,也得到了提高。

字典对象只有4个属性和6个方法,相对其它的对象要简洁得多,而且容易理解使用方便,功能强大,运行速度非常快,效率极高。

深受大家的喜爱。

本文希望通过对一些字典应用的典型实例的代码的详细解释来给初次接触字典和想要进一步了解字典用法的朋友提供一点备查的参考资料,希望大家能喜欢。

给代码注释估计是大家都怕做的,因为往往是出力不讨好的,稍不留神或者自己确实理解得不对,还会贻误他人。

所以下面的这些注释如果有不对或者不妥当的地方,请大家跟帖时指正批评,及时改正。

字典的简介字典(Dictionary)对象是微软Windows脚本语言中的一个很有用的对象。

附带提一下,有名的正则表达式(RegExp)对象和能方便处理驱动器、文件夹和文件的(FileSystemObject)对象也是微软Windows脚本语言中的一份子。

字典对象相当于一种联合数组,它是由具有唯一性的关键字(Key)和它的项(Item)联合组成。

就好像一本字典书一样,是由很多生字和对它们对应的注解所组成。

比如字典的“典”字的解释是这样的:“典”字就是具有唯一性的关键字,后面的解释就是它的项,和“典”字联合组成一对数据。

常用关键字英汉对照:2字典的简介Dictionary 字典Key 关键字Item 项,或者译为条目字典对象的方法有6个:Add方法、Keys方法、Items方法、Exists方法、Remove方法、RemoveAll方法。

VBA字典用法集锦及案例代码详解

VBA字典用法集锦及案例代码详解

VBA字典用法集锦及案例代码详解VBA中的字典是一种集合数据类型,它可以用来存储键值对。

字典中的键是唯一的,而值可以重复。

通过键可以快速查找和访问对应的值。

以下是一些常见的VBA字典用法和案例代码的详解:1.创建字典可以使用Dictionary对象来创建一个新的字典对象。

例如:```vbaDim dict As ObjectSet dict = CreateObject("Scripting.Dictionary")```2.添加键值对使用Add方法可以向字典中添加键值对。

例如:```vbadict.Add "Key1", "Value1"dict.Add "Key2", "Value2"```3.访问值可以使用键来访问字典中的对应的值。

例如:```vbaDim value As Stringvalue = dict("Key1")```4.更新值使用键来更新字典中的值。

例如:```vbadict("Key1") = "NewValue"```5.删除键值对可以使用Remove方法来删除字典中的键值对。

例如:```vbadict.Remove "Key1"```6.遍历字典可以使用For Each循环来遍历字典中的键值对。

例如:```vbaDim key As VariantDim value As VariantFor Each key In dict.Keysvalue = dict(key)'执行其他操作Next key```7.检查键是否存在可以使用Exists方法来检查字典中是否包含指定的键。

例如:```vbaIf dict.Exists("Key1") Then'执行操作End If```8.获取字典中的键和值可以使用Keys和Items属性来获取字典中的所有键和值。

VBA字典典型案例学习必背代码

VBA字典典型案例学习必背代码

VBA 字典法学习与例子Sub 二列多行求和()Dim arr1, dic, x, arr2(1 To 10, 1 To 2), m%, k% '定义变量Set dic = CreateObject("Scripting.dictionary") '后期绑定引用字典arr1 = Range("A1").CurrentRegion '把单元区域装到数组arr1For x = 2 To UBound(arr1, 1) '循环数组arr1的行If dic.exists(arr1(x, 1)) Then '判断数组元素arr1(x,1)在字典关键词里是否存在,m = dic(arr1(x, 1)) '如果存在,把关键词arr1(x,1)的条目读出来,在原来的'基础上累加,通过读取关键词arr1(x,1)的条目,找到在数组arr2那一行上累加arr2(m, 2) = arr2(m, 2) + arr1(x, 2) '在数组arr2第m行,第2列上累加Else '如果关键词arr1(x,1)不存在,那么k = k + 1 '计数dic(arr1(x, 1)) = k '把数组arr1(x,1)装到字典dic里,条目装一个k,'这个k的作用来给数组arr2中找到存放那一行arr2(k, 1) = arr1(x, 1) '把数组arr1里的第x行第1列装到数组arr2的第k行,第1列arr2(k, 2) = arr1(x, 2) '把数组arr1里的第x行第2列装到数组arr2的第k行,第2列End IfNext xRange("E1:F" & Rows.Count) = "" '清空区域,用来存放新的数据[E1:F1] = Array("产品名称", "数量") '填充表头[E2].Resize(k, 2) = arr2 '把数组arr2读到单元格区域End Sub2020-8-31Sub 多列多行汇总()Dim dic, arr1, x%, MySt, k%, arr2(1 To 15, 1 To 3), y%, m%Set dic = CreateObject("Scripting.dictionary")arr1 = Range("A1").CurrentRegionFor x = 2 To UBound(arr1, 1)MySt = arr1(x, 1) & arr1(x, 2)If dic.exists(MySt) Thenm = dic(MySt)arr2(m, 3) = arr2(m, 3) + arr1(x, 3)Elsek = k + 1dic(MySt) = kFor y = 1 To 3arr2(k, y) = arr1(x, y)Next yEnd IfNext xRange("E1:G" & Rows.Count) = ""[E1:G1] = Array("产品名称", "款号", "数量")[E2].Resize(k, 3) = arr2End Sub产品名称款号数量产品名称款号数量WS-10 A 1 WS-10 A 100 WS-10 B 2 WS-10 B 2 WS-10 C 3 WS-10 C 3 VZ-45 A 1 VZ-45 A 1000 VZ-45 B 2 VZ-45 B 2 VZ-45 C 3 VZ-45 C 3 WS-10 A 99VZ-45 A 999Sub 删除重复数据-根据A列内容,保存表格内数据最上面一行,删除下面的重复行Set d = CreateObject("scripting.dictionary")Set Rng = Nothingarr = [a1].CurrentRegionApplication.ScreenUpdating = FalseFor j = 1 To UBound(arr)If d.exists(arr(j, 1)) ThenIf Rng Is Nothing ThenSet Rng = Cells(j, 1)ElseSet Rng = Union(Rng, Cells(j, 1))End IfElsed(arr(j, 1)) = ""End IfNext jIf Not Rng Is Nothing Then Rng.EntireRow.Delete Application.ScreenUpdating = TrueEnd Sub客户姓名月份消费数量A1 1 10A2 1 10A1 1 10A2 1 10A3 2 10A4 2 10A5 2 10A3 2 10A4 2 10A5 2 10A6 3 10A7 3 10A6 3 10A7 3 10A8 4 10A4 4 10A8 4 10A4 4 10A5 5 10A6 5 10A5 5 10A6 5 10A1 6 10A10 6 10A1 6 10A10 6 10A8 7 10A9 7 10A8 7 10A9 7 10Sub 根据内容查询对应数据Dim dic, arr1, arr2, arr3, arr4(1 To 100, 1 To 2), x& y& k& '定义变量Set dic = CreateObject("Scripting.Dictionary") '后期绑定引用字典Range("H2:I100") = "" '清空原有的数据arr1 = Range("A1").CurrentRegion '把区域装到数组arr1arr2 = Range("F1").CurrentRegion '把区域装到数组arr2For x = 2 To UBound(arr1, 1) '循环数组arr1的行dic(arr1(x, 1) & "|" & arr1(x, 2)) = arr1(x, 3) & "|" & arr1(x, 4)'由于两个条件,而关键字只能装一个条件,所以用&把两件条件连起来,中间用"|"分开'同理,由于有二个条目,而一个关键词只能对应一个条目,因此我也是用&连接起来,中间用"|"分开'这样就解决了多行多列装入到字典,间接地突破了字典只能装两列Next xFor y = 2 To UBound(arr2, 1) '循环数组arr2的行arr3 = VBA.Split(dic(arr2(y, 1) & "|" & arr2(y, 2)), "|")'根据arr2(y, 1) & "|" & arr2(y, 2))读字典dic里的条目出来,其实它的条目就是我们'刚才arr1后面两列的用"|"的数据,然后用函数Split切开,根据"|",赋值给数组arr3 '大家一定要明白,Split通过"|"切开,赋值给数组arr3 数组arr3是一维数组,且它的上标从0开始k = k + 1 '累加karr4(k, 1) = Val(arr3(0)) '把切开出来的数据放到数组arr4里arr4(k, 2) = Val(arr3(1))Next y[H2].Resize(k, 2) = arr4Sub 透视表示的汇总()Dim arr1, dica, dicb, x& k& y& m& n& a& b& arr2() '定义相关的变量Set dica = CreateObject("Scripting.Dictionary") '创建两个字典Set dicb = CreateObject("Scripting.Dictionary")arr1 = Range("A1").CurrentRegion '把区域装入数组arr1For x = 2 To UBound(arr1, 1) '循环数组arr1的行If Not dicb.exists(arr1(x, 2)) Then '如果关键字arr1(x,2)不存在,那么'就把它装入字典dicb里,目的就是为了去重k = k + 1 '累加k,目的给dicb做条目dicb(arr1(x, 2)) = k + 1 '这里为什么还要加1呢?原因在数组arr2里第一列是产品名称'第二放型号"大号",第三列放型号"中号",第四列放型号"小号",第五列是行汇总End IfNext xReDim arr2(1 To 100, 1 To dicb.Count + 2)For y = 2 To UBound(arr1, 1)If dica.exists(arr1(y, 1)) Then '如果字典dica里关键字arr1(y,1)存在,那么就累加arr2数据列a = dica(arr1(y, 1)) '字典dica里关键词arr1(y,1)的条目读出来,目的在是在数组arr2'里找到累加数组arr2那一行,而数组arr2有五列,具体累加到那一列呢?b = dicb(arr1(y, 2)) '字典dicb里的关键词arr1(y,2)的字典读出来,来定位到具体累加到数组arr2那一列arr2(a, b) = arr2(a, b) + arr1(y, 3)arr2(a, 5) = arr2(a, 2) + arr2(a, 3) + arr2(a, 4) '同一行三种型号相加Elsem = m + 1 '累加m,目的给dica做条目和数组arr2定位dica(arr1(y, 1)) = m '把arr1(y,1)装入字典dic2,条目为mn = dicb(arr1(y, 2))arr2(m, 1) = arr1(y, 1) '把数组arr1的第一列装入arr2里的第一列arr2(m, n) = arr1(y, 3) '把数组arr1的第三列装入arr2里的第n列End IfNext yRange("F1:J" & Rows.Count) = ""[F1] = "产品名称"[G1].Resize(1, dicb.Count) = dicb.keys[G1].Offset(0, dicb.Count) = "行总计"[F2].Resize(dica.Count, dicb.Count + 2) = arr2End Sub。

vba中字典用法

vba中字典用法

vba中字典用法字典是一种用于存储键值对的数据结构,在VBA中经常被用来解决需要快速查找和访问数据的问题。

本文将介绍VBA中字典的用法,包括字典的创建、添加、删除和查找等操作。

一、字典的创建要使用字典,首先需要声明和初始化一个字典变量。

可以使用“Dim”语句声明一个字典变量,并使用“CreateObject”函数初始化它,示例代码如下:Dim dict As ObjectSet dict = CreateObject("Scripting.Dictionary")二、字典的添加字典的添加操作指的是向字典中添加键值对。

使用“Add”方法可以向字典中添加一个键值对,示例代码如下:dict.Add "key1", "value1"在字典中,键必须是唯一的,如果添加重复的键,会触发错误。

可以使用“Exists”方法检查键是否已存在于字典中,示例代码如下:If Not dict.Exists("key1") Thendict.Add "key1", "value1"三、字典的删除字典的删除操作指的是从字典中删除一个键值对。

可以使用“Remove”方法将指定的键值对从字典中移除,示例代码如下:dict.Remove "key1"如果要清空整个字典,可以使用“RemoveAll”方法,示例代码如下:dict.RemoveAll四、字典的查找字典的查找操作指的是根据键查找对应的值。

可以使用“Item”方法获取指定键的值,示例代码如下:Dim value As Variantvalue = dict("key1")在查找时,如果指定的键不存在于字典中,会触发错误。

可以使用“Exists”方法检查键是否存在于字典中,示例代码如下:If dict.Exists("key1") ThenDim value As Variantvalue = dict("key1")五、其他常用操作除了添加、删除和查找,字典还提供了其他一些常用的操作方法。

vba字典的用法

vba字典的用法

vba字典的用法VBA字典的用法什么是VBA字典?VBA字典是一种用于存储和管理键值对的数据结构。

它类似于Excel中的单元格范围,通过键值对的形式进行数据存储和访问。

创建字典对象通过CreateObject函数可以创建一个字典对象。

Dim dict As ObjectSet dict = CreateObject("")添加键值对使用Add方法来向字典对象添加键值对。

"key1", "value1""key2", "value2"访问字典中的值可以通过键来访问字典中的值。

Dim value As Stringvalue = dict("key1")判断键是否存在可以使用Exists方法判断指定的键是否存在于字典中。

If ("key1") Then' 键存在的处理逻辑End If删除键值对使用Remove方法可以删除指定键的键值对。

"key1"循环遍历字典可以使用For Each循环来遍历字典中的键值对。

Dim key As VariantFor Each key In"Key: " & key, "Value: " & dict(key)Next key字典的属性和方法除了上述基本用法外,字典对象还提供了一些其他常用的属性和方法:•Count:获取字典中键值对的数量。

•Keys:获取字典中所有键的集合。

•Items:获取字典中所有值的集合。

•RemoveAll:删除字典中的所有键值对。

•Exists:判断指定的键是否存在于字典中。

总结VBA字典是一种方便实用的数据结构,能够快速存储和访问键值对。

通过本文的介绍,你可以掌握VBA字典的基本用法,进而在VBA编程中灵活运用字典对象。

vba 字典 用法

vba 字典 用法

VBA中的字典(Dictionary)是一种特殊的对象,用于存储键值对(Key-Value Pair)。

使用字典可以很方便地存储、查询和管理数据。

下面是一些VBA字典的基本用法:
创建字典对象
vba
Dim myDict As Object
Set myDict = CreateObject("Scripting.Dictionary")
向字典中添加键值对
vba
myDict.Add "key1", "value1"
myDict.Add "key2", "value2"
获取字典中的值
vba
Dim value As Variant
value = myDict("key1")
判断键是否存在
vba
If myDict.Exists("key1") Then
' do something
End If
删除字典中的键值对
vba
myDict.Remove "key1"
清空字典中的所有键值对
vba
myDict.RemoveAll()
除了以上基本用法,VBA字典还有很多高级用法,比如遍历字典中的所有键值对、合并多个字典等。

可以根据实际需求使用相应的语法和方法来实现。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

常见字典用法集锦及代码详解前言凡是上过学校的人都使用过字典,从新华字典、成语词典,到英汉字典以及各种各样数不胜数的专业字典,字典是上学必备的、经常查阅的工具书。

有了它们,我们可以很方便的通过查找某个关键字,进而查到这个关键字的种种解释,非常快捷实用。

凡是上过EH论坛的想学习VBA里面字典用法的,几乎都看过研究过northwolves狼版主、oobird版主的有关字典的精华贴和经典代码。

我也是从这里接触到和学习到字典的,在此,对他们表示深深的谢意,同时也对很多把字典用得出神入化的高手们致敬,从他们那里我们也学到了很多,也得到了提高。

字典对象只有4个属性和6个方法,相对其它的对象要简洁得多,而且容易理解使用方便,功能强大,运行速度非常快,效率极高。

深受大家的喜爱。

本文希望通过对一些字典应用的典型实例的代码的详细解释来给初次接触字典和想要进一步了解字典用法的朋友提供一点备查的参考资料,希望大家能喜欢。

给代码注释估计是大家都怕做的,因为往往是出力不讨好的,稍不留神或者自己确实理解得不对,还会贻误他人。

所以下面的这些注释如果有不对或者不妥当的地方,请大家跟帖时指正批评,及时改正。

字典的简介字典(Dictionary)对象是微软Windows脚本语言中的一个很有用的对象。

附带提一下,有名的正则表达式(RegExp)对象和能方便处理驱动器、文件夹和文件的(FileSystemObject)对象也是微软Windows脚本语言中的一份子。

字典对象相当于一种联合数组,它是由具有唯一性的关键字(Key)和它的项(Item)联合组成。

就好像一本字典书一样,是由很多生字和对它们对应的注解所组成。

比如字典的“典”字的解释是这样的:“典”字就是具有唯一性的关键字,后面的解释就是它的项,和“典”字联合组成一对数据。

常用关键字英汉对照:Dictionary 字典Key 关键字Item 项,或者译为条目字典对象的方法有6个:Add方法、Keys方法、Items方法、Exists方法、Remove方法、RemoveAll方法。

Add方法向 Dictionary 对象中添加一个关键字项目对。

(key, item)参数object必选项。

总是一个 Dictionary 对象的名称。

key必选项。

与被添加的 item 相关联的 key。

item必选项。

与被添加的 key 相关联的 item。

说明如果 key 已经存在,那么将导致一个错误。

常用语句:Dim dSet d = CreateObject("")"a", "Athens""b", "Belgrade""c", "Cairo"代码详解1、Dim d :创建变量,也称为声明变量。

变量d声明为可变型数据类型(Variant),d后面没有写数据类型,默认就是可变型数据类型(Variant)。

也有写成Dim d As Object的,声明为对象。

2、Set d = CreateObject(""):创建字典对象,并把字典对象赋给变量d。

这是最常用的一句代码。

所谓的“后期绑定”。

用了这句代码就不用先引用c:\windows\system32\了。

3、"a", "Athens":添加一关键字”a”和对应于它的项”Athens”。

4、 "b", “Belgrade”:添加一关键字”b”和对应于它的项”Belgrade”。

5、 "c", “Cairo”:添加一关键字”c”和对应于它的项”Cairo”。

Exists方法如果Dictionary 对象中存在所指定的关键字则返回true,否则返回 false。

(key)参数object必选项。

总是一个 Dictionary 对象的名称。

key必选项。

需要在 Dictionary 对象中搜索的 key 值。

常用语句:Dim d, msg$Set d = CreateObject("")"a", "Athens""b", "Belgrade""c", "Cairo"If ("c") Thenmsg = "指定的关键字已经存在。

"Elsemsg = "指定的关键字不存在。

"End If代码详解1、Dim d, msg$ :声明变量,d见前例;msg$ 声明为字符串数据类型(String),一般写法为Dim msg As String。

String的类型声明字符为美元号 ($)。

2、If ("c") Then:如果字典中存在关键字”c”,那么执行下面的语句。

3、msg = "指定的关键字已经存在。

" :把"指定的关键字已经存在。

"字符串赋给变量msg。

4、Else :否则执行下面的语句。

5、msg = "指定的关键字不存在。

" :把"指定的关键字不存在。

"字符串赋给变量msg。

6、End If :结束If …Else…Endif判断。

Keys方法返回一个数组,其中包含了一个 Dictionary 对象中的全部现有的关键字。

( )其中 object 总是一个 Dictionary 对象的名称。

常用语句:Dim d, kSet d = CreateObject("")"a", "Athens""b", "Belgrade""c", "Cairo"k=[B1].Resize,1)=(k)代码详解1、Dim d, k :声明变量,d见前例;k默认是可变型数据类型(Variant)。

2、k=:把字典中存在的所有的关键字赋给变量k。

得到的是一个一维数组,下限为0,上限为。

这是数组的默认形式。

3、[B1].Resize,1)=(k) :这句代码是很常用很经典的代码,所以这里要多说一些。

Resize是Range对象的一个属性,用于调整指定区域的大小,它有两个参数,第一个是行数,本例是,指的是字典中关键字的数量,整本字典中有多少个关键字,本例=3,因为有3个关键字。

呵呵,是不是说多了。

第二个是列数,本例是1。

这样=左边的意思就是:把一个单元格B1调整为以B1开始的一列单元格区域,行数等于字典中关键字的数量,就是把单元格B1调整为单元格区域B1:B3了。

=右边的k是个一维数组,是水平排列的,我们知道Excel 工作表函数里面有个转置函数Transpose,用它可以把水平排列的置换成竖向排列。

但是在VBA中不能直接使用该工作表函数,需要通过Application对象的WorksheetFunction属性来使用它。

所以完整的写法是Application. (k),中间的WorksheetFunction可省略。

现在可以解释这句代码了:把字典中所有的关键字赋给以B1单元格开始的单元格区域中。

Items方法返回一个数组,其中包含了一个 Dictionary 对象中的所有项目。

( )其中 object 总是一个 Dictionary 对象的名称。

常用语句:Dim d, tSet d = CreateObject("")"a", "Athens""b", "Belgrade""c", "Cairo"t=[C1].Resize,1)=(t)代码详解1、Dim d, t :声明变量,d见前例;t默认是可变型数据类型(Variant)。

2、t= :把字典中所有的关键字对应的项赋给变量t。

得到的也是一个一维数组,下限为0,上限为。

这是数组的默认形式。

3、[C1].Resize,1)=(t) :有了上面Keys方法的解释这句代码就不用多说了,就是把字典中所有的关键字对应的项赋给以C1单元格开始的单元格区域中。

Remove方法Remove 方法从一个 Dictionary 对象中清除一个关键字,项目对。

(key )其中 object 总是一个 Dictionary 对象的名称。

key必选项。

key 与要从 Dictionary 对象中删除的关键字,项目对相关联。

说明如果所指定的关键字,项目对不存在,那么将导致一个错误。

常用语句:Dim dSet d = CreateObject("")"a", "Athens""b", "Belgrade""c", "Cairo"……(“b”)代码详解1、(“b”):清除字典中”b”关键字和与它对应的项。

清除之后,现在字典里只有2个关键字了。

RemoveAll方法RemoveAll 方法从一个 Dictionary 对象中清除所有的关键字,项目对。

( )其中 object 总是一个 Dictionary 对象的名称。

常用语句:Dim dSet d = CreateObject("")"a", "Athens""b", "Belgrade""c", "Cairo"……代码详解1、:清除字典中所有的数据。

也就是清空这字典,然后可以添加新的关键字和项,形成一本新字典。

字典对象的属性有4个:Count属性、Key属性、Item属性、CompareMode属性。

Count属性返回一个Dictionary 对象中的项目数。

只读属性。

其中 object一个字典对象的名称。

常用语句:Dim d,n%Set d = CreateObject("")"a", "Athens""b", "Belgrade""c", "Cairo"n =代码详解1、Dim d, n% :声明变量,d见前例;n被声明为整型数据类型(Integer)。

相关文档
最新文档