ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
楼主: 佛山小老鼠

[原创] 佛山小老鼠带您走进字典(字典入门帖)

  [复制链接]

TA的精华主题

TA的得分主题

发表于 2016-2-20 18:37 | 显示全部楼层
本帖已被收录到知识树中,索引项:数组集合和字典
群里应该设个发红包功能,能给这么好的贴子发个红包!

TA的精华主题

TA的得分主题

发表于 2016-3-22 11:46 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
楼主威武,太棒了

TA的精华主题

TA的得分主题

发表于 2016-4-7 08:38 | 显示全部楼层
shenzewen 发表于 2015-10-6 00:58
你好,我现在才开始接触字典,很感谢你的分享,我有个问题想请教,在6个方法4个属性里
Function 计数(Rg A ...

同样的疑惑,路过的老师能否解释一下?

TA的精华主题

TA的得分主题

发表于 2016-4-18 15:13 | 显示全部楼层
佛山小老鼠 发表于 2013-11-3 11:05
6个方法和4个属性起床了,起床了,太阳晒屁股了,今天我们把6个方法和4个属性学习完
1.方法add 是添加的意思  ...

谢谢分享!

TA的精华主题

TA的得分主题

发表于 2016-4-18 16:34 | 显示全部楼层
jsgj2023 发表于 2016-4-7 08:38
同样的疑惑,路过的老师能否解释一下?

你从哪里看的 ITEMS  ???

TA的精华主题

TA的得分主题

发表于 2016-4-18 17:39 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2016-5-15 11:11 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2016-7-10 21:17 | 显示全部楼层
m = dic(arr1(x, 1)) 这句应该是返回条目值,怎么程序返回的是条目数

TA的精华主题

TA的得分主题

发表于 2016-7-10 21:26 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
m = dic(arr1(x, 1)) '如果存在,把关键词arr1(x,1)的条目读出来,在原来的
       '基础上累加,通过读取关键词arr1(x,1)的条目,找到在数组arr2那一行上累加
这句不理解呀,dic(关键词)这个按理说是返回条目值,可在以下代码中返回的是条目数
Sub 二列多行()
    Dim arr1, dic, x, arr2(1 To 10, 1 To 2), m%, k% '定义变量
    Set dic = CreateObject("Scripting.dictionary") '后期绑定引用字典
    arr1 = Range("A1").CurrentRegion '把单元区域装到数组arr1
    For 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那一行上累加
        MsgBox m
           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 If
    Next x
    Range("E1:F" & Rows.Count) = "" '清空区域,用来存放新的数据
    [E1:F1] = Array("产品名称", "数量") '填充表头
    [E2].Resize(k, 2) = arr2 '把数组arr2读到单元格区域
End Sub

TA的精华主题

TA的得分主题

发表于 2016-7-21 07:23 | 显示全部楼层
拆分实例我觉得挺好的,可以通过对话自由选择拆分列!
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-15 19:54 , Processed in 0.033837 second(s), 5 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表