ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[已解决] 多维数组应用的实际问题为什么很少

[复制链接]

TA的精华主题

TA的得分主题

发表于 2013-3-6 23:23 来自手机 | 显示全部楼层 |阅读模式
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖最后由 洛天依 于 2013-3-7 19:33 编辑

单元格区域的数据复制给二维数组,或二维数组输出到单元格,确实方便。
一维数组的应用实例也很多。
如题。就算输入输出不方便,难道也没适合多维数组出手的实例么?可能能用一维和二维联手解决。难道多维只是一个概念,仅用于学习。而没有它风光的时候?

不知有没有关系,说redim时,preserve只能改变最后一维的上界。这说明帮助还没忘提醒多维数组。

不知什么时候时候多维数组出手,谢谢!

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2013-3-6 23:28 | 显示全部楼层
好像是preserve redim 只对一维数组有用,不知道是不是这样

TA的精华主题

TA的得分主题

发表于 2013-3-6 23:42 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
多维一维都是数组,区别很大么?

TA的精华主题

TA的得分主题

 楼主| 发表于 2013-3-6 23:54 来自手机 | 显示全部楼层
joforn 发表于 2013-3-6 23:42
多维一维都是数组,区别很大么?

既然发明出来了,暂且叫发明吧,总该有它的长处呀。不然,不是白发明的么,那多浪费呀。
如果有这样的员工,公司不给他开除才是奇怪呢。

TA的精华主题

TA的得分主题

 楼主| 发表于 2013-3-6 23:56 来自手机 | 显示全部楼层
战战如疯 发表于 2013-3-6 23:28
好像是preserve redim 只对一维数组有用,不知道是不是这样

不是哦,二维也有用。
其它,没用过。

TA的精华主题

TA的得分主题

发表于 2013-3-7 00:06 | 显示全部楼层
本帖最后由 DataBus 于 2013-3-7 00:07 编辑

本不存在多维数组,只是为了方便人们想象,程序语言固化的索引方式。多于2维的应用的确少。

TA的精华主题

TA的得分主题

发表于 2013-3-7 00:12 | 显示全部楼层
本帖最后由 zhaogang1960 于 2013-3-7 00:31 编辑

Excel工作表中使用3维或以上的数组很不方便,我早期写过一帖,输出到工作表中时,需要再转换成2维数组:
[字典嵌套][三维数组]对结构基本相同、同名工作表列项目不同的多个工作簿按表名汇总
http://club.excelhome.net/thread-485339-1-1.html

使用数组嵌套更方便一些,请参考下面链接:
请高手看这个超难度的vba问题
http://club.excelhome.net/thread-693662-1-1.html

TA的精华主题

TA的得分主题

发表于 2013-3-7 00:19 | 显示全部楼层
本帖最后由 joforn 于 2013-3-7 00:27 编辑
洛天依 发表于 2013-3-6 23:54
既然发明出来了,暂且叫发明吧,总该有它的长处呀。不然,不是白发明的么,那多浪费呀。
如果有这样的员 ...

就像是书法一样,用行书或是草书写的实际上还是同一个字,只是看起来不一样。实际上,想把一维数组改为二维或是三维数据也很简单,同理,逆向修改也一样简单。内存空间还是那一块,怎么去表示并不是关键,关键是怎么表示更符合要求或是更方便、更容易理解。
  为什么多维动态数组在保留原有数据时只能更改其最后一维的上限呢?这个我倒是可以解释一下:
  数组是以连续的内存空间来存储所有元素的值,如果是一维数组,那么它的内存空间就是所有元素所占空间的连续。如果是两维的,那么可以将第一维所有元素占用的空间看成是第二维的一个元素,也就是说整个二维数组占用的空间是第一维的元素单个空间*第一维的元素个数*第二维的序号个数,并且每个第二维的总空间仍是连续的。
  这样,在不改变数组原有数据的提前下,最后一维的上限最容易修改。只需根据被修改的上限增加或是释放相应的空间就行了(二维数据的情况下=每个第一维的占用空间*被修改的第二维上限差)。如果修改了非最后一维的上限,就必然会影响整个空间的原有排列次序,所以,为了省事,只有最后一维上限被允许在保留原有数组数据时被直接修改。

TA的精华主题

TA的得分主题

 楼主| 发表于 2013-3-7 00:51 来自手机 | 显示全部楼层
joforn 发表于 2013-3-7 00:19
就像是书法一样,用行书或是草书写的实际上还是同一个字,只是看起来不一样。实际上,想把一维数组改为二 ...

谢谢joforn
讲解了这么多的原理,学习了!
如果多维数组价值不大,为什么设计者不限定的更少,帮助说最多60维,为什么不限定成6维?就好像裁缝做衣服口袋,一般做几个口袋就足够了。如果不是极其BT的需求,谁会去做60个口袋。设计者是咋想到60的啊,还是说可能会有怎样怎样的时候,那时候有60个口袋就显得一点也不奇怪了。
当然,单纯的数量60和60维,是两回事,天啊想想60维就晕得不行了。。。。。

TA的精华主题

TA的得分主题

 楼主| 发表于 2013-3-7 01:02 来自手机 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
zhaogang1960 发表于 2013-3-7 00:12
Excel工作表中使用3维或以上的数组很不方便,我早期写过一帖,输出到工作表中时,需要再转换成2维数组:
[ ...

谢谢赵老师
这两个实例的用法,我需下去花时间慢慢学习,感谢分享。
一维二维有不少小实例或简单情况好说明,但从三开始,是不是就难以用简单例子来说明多维独有的优势呀?
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2025-1-12 04:44 , Processed in 0.026314 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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