ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 一维数组的定义问题

[复制链接]

TA的精华主题

TA的得分主题

发表于 2019-6-25 14:43 | 显示全部楼层 |阅读模式
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
现在学习数组的过程中, 声明变量【dim 数组名  (a  to   b)  as  数据类型 】感觉都没办法设定,一设定就出现运行【不能给数组赐值】,求教各位老师,应该如何设置这些呢?
Sub test2()

Dim Arr()  '(1 To 30) 'As Integer          'dim 数组名  (a  to   b)  as  数据类型
Dim Brr() '(1 To 10)

Arr() = Range("b2:B31")     '为什么指定 (上下维数) 和 [数据类型] 就出现【不能给数组赐值】呢?
    Range("D9") = Arr(30, 1)
Brr = Range("b2:k2")        'brr没加()为什么也可以赐值呢?
    Range("E10") = Brr(1, 3)    '为啥是二维组,怎么才能算是一维数组啊?

End Sub


一维数组学习.rar

30.1 KB, 下载次数: 5

TA的精华主题

TA的得分主题

发表于 2019-6-25 15:29 | 显示全部楼层
在论坛上搜索一下吧,记得以前香川群子等老师就此问题做过详细解答。实际上对于初学者来说,只要知道怎么做就行了,没必要在有些问题上钻牛角尖非要问个为什么。

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-6-25 15:46 | 显示全部楼层
chxw68 发表于 2019-6-25 15:29
在论坛上搜索一下吧,记得以前香川群子等老师就此问题做过详细解答。实际上对于初学者来说,只要知道怎么做 ...

谢谢chxw68老师,因为是在从一维开始学习数组,想知道如何设置才是正确的方法,并非是在编程过程中钻牛角尖。

找到一个答案了。指向excel对象,比如range() 的 默认为2维数组,因为EXCEL表本身就是二维数组。

还有数据类型这个问题可以指教下吗?

TA的精华主题

TA的得分主题

发表于 2019-6-25 16:27 | 显示全部楼层
在工作表内取值,只会获得两种值:1、单个单元格的值,必然是单值;2、多单元格区域(不论只有一行或一列)的值都被视为一个二维数组

TA的精华主题

TA的得分主题

发表于 2019-6-25 16:49 | 显示全部楼层
本帖最后由 yooha 于 2019-6-25 16:52 编辑

个人觉得Range单元格就是设定为二维数组,你可以直接用一维数组给一组单元格赋值,但不能直接引用一组单元格给一维数组赋值

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-6-25 17:19 | 显示全部楼层
谢谢yooha老师,找到一个答案: 指向excel对象,比如range() 的 默认为2维数组,因为EXCEL表本身就是二维数组。
还有个数据类型,暂时没头绪...

TA的精华主题

TA的得分主题

发表于 2019-6-25 20:31 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
  1. Sub pey_test()
  2. Dim Arr  '一次转置降为一维
  3. Arr = Application.Transpose(Application.Index(Range("b2:b31"), 0, 1))

  4. Dim Brr '两次转置降为一维
  5. Brr = Application.Transpose(Application.Transpose(Application.Index(Range("b2:k2"), 1, 0)))

  6. Stop
  7. End Sub
复制代码
通过工作表函数 实现。

评分

1

查看全部评分

您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

关闭

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

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

GMT+8, 2024-4-19 21:22 , Processed in 0.042641 second(s), 13 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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