ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
300集Office 2010微视频教程 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 2363|回复: 13

[求助] 蓝桥老师字典用法集锦中的未理解之处1

[复制链接]

TA的精华主题

TA的得分主题

发表于 2019-6-30 11:21 | 显示全部楼层 |阅读模式
本帖最后由 飞豹126 于 2019-6-30 11:23 编辑

首先感谢蓝桥老师的常见字典用法集锦帖子,受益很多http://club.excelhome.net/thread-868892-1-1.html
在开篇语法介绍了add方法,object.Add (key, item),这个理解;可在后面的  实例1普通常见的求不重复值问题  中 d(Arr(i, 3)) = d(Arr(i, 3)) + 1 产生困惑,注解上写的Arr(i, 3)是key,
①那d(Arr(i, 3))就是item吗?理解成item缺省吗?我感觉这个添加字典方法是只添加的Arr(i,3)列,item没有指定啊,那这个可以写成d.Add Arr(i,3)=d.Add Arr(i,3)+1吗;
为啥这个d(Arr(i, 3)) 就可以直接参与高斯累加得出汇总结果啊,是应该理解成所有对应的项在累加,还是关键字加项组成的一条条记录在累加?


在开篇语法介绍中,k=d.Keys:把字典中存在的所有的关键字赋给变量k。得到的是一个一维数组,下限为0,上限为d.Count-1。这是数组的默认形式。
③d里面有几个一维的数字,上限不久应该是几吗,为啥范围不是 下限为1上限为d.Count,而应该是下限为0上限为d.Count-1呢?


请各位老师赐教,万分感谢。


02.png
01.png

TA的精华主题

TA的得分主题

发表于 2019-6-30 12:58 来自手机 | 显示全部楼层
d(k)这种写法代表item,这句之前如果字典中没有k这个关键字,就自动加进去并且对应的item为空,如果要累加计算就按等于0处理

TA的精华主题

TA的得分主题

发表于 2019-6-30 13:10 | 显示全部楼层
一维数组的下限 默认为0 (记住它)

d(Arr(i, 3)) 代表字典d中 key=Arr(i, 3) 对应的 item值 。(记住)

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-6-30 14:06 | 显示全部楼层
zopey 发表于 2019-6-30 13:10
一维数组的下限 默认为0 (记住它)

d(Arr(i, 3)) 代表字典d中 key=Arr(i, 3) 对应的 item值 。(记住)

那如果字典里就只有2个key,  上限     d.count-1   岂不是变成2-1=1了??不解?

TA的精华主题

TA的得分主题

发表于 2019-6-30 14:38 来自手机 | 显示全部楼层
很简单的问题。除了特别指定,或者是由单元格区域赋值的数组,数组默认下限为0。

d(Arr(i, 3)) 也很容易理解,这种语句,会在Arr(i, 3)关键字不存在时自动新增到字典,如果有了,就不会增加,也不会报错,比add方法好用太多了。d(Arr(i, 3)) 就是item,在第一次运行d(Arr(i, 3)) 时,新增arr(i,3)关键字,item参与字符串运算为空,参与算术运算时为0

TA的精华主题

TA的得分主题

发表于 2019-6-30 22:47 | 显示全部楼层
飞豹126 发表于 2019-6-30 14:06
那如果字典里就只有2个key,  上限     d.count-1   岂不是变成2-1=1了??不解?

如你举例 , d.count= 2,说明有 2个 key ;
一维数组 ar (0 to d.count-1),也就是 (0 to 1)意思也是 有 2个 key 。

并无矛盾

TA的精华主题

TA的得分主题

发表于 2019-6-30 22:54 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
飞豹126 发表于 2019-6-30 14:06
那如果字典里就只有2个key,  上限     d.count-1   岂不是变成2-1=1了??不解?

初學會有此困擾不難理解
實質是, 數組下維是0, d.count報的是實際多少
有3個key,  d.count 報的是3, 而key的下維是0,1,2
也就是說 d.count - 1
實際就是 0 to 3 - 1
就是0 to 2
如何,沒問題了吧

TA的精华主题

TA的得分主题

发表于 2019-7-1 09:25 | 显示全部楼层
佛山小老鼠带您走进字典(字典入门帖)
http://club.excelhome.net/thread-1068483-1-1.html
(出处: ExcelHome技术论坛)

TA的精华主题

TA的得分主题

发表于 2019-7-1 12:33 | 显示全部楼层
飞豹126 发表于 2019-6-30 14:06
那如果字典里就只有2个key,  上限     d.count-1   岂不是变成2-1=1了??不解?

你是数组的知识不过关。
一个一维数组下标是从0 开始的,其中有两个元素。
arr(0), arr(1) 有问题吗?有几个元素,数组的下标上限是不是个数-1?
d.count =2 说明有两个键值对在字典中
d.keys 转成数组,下标从0 开始,当然是下标上限 是 d.count-1 了

TA的精华主题

TA的得分主题

发表于 2019-7-1 13:13 | 显示全部楼层
飞豹126 发表于 2019-6-30 14:06
那如果字典里就只有2个key,  上限     d.count-1   岂不是变成2-1=1了??不解?

下限0,上限1,count2。
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

关闭

最新热点上一条 /1 下一条

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

GMT+8, 2024-4-26 15:33 , Processed in 0.050810 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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