ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助]请问老师怎么建立这个数组?

[复制链接]

TA的精华主题

TA的得分主题

发表于 2007-12-29 16:35 | 显示全部楼层 |阅读模式

option base 1

'我先在表中先选择一行:

sub 建立数组()

sheet2.select

dim r as long

r=selection.Row

dim arr(12) '我想在我选择的这一行的A列到L列建立一个数组

arr(12)=range("a:l"&r) "重点在这里,我不知道这个数组的建立错在哪里?

请老师们在百忙中帮我解答一下,谢谢了!

TA的精华主题

TA的得分主题

发表于 2007-12-29 17:33 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册

回复:(yuan710825)[求助]请问老师怎么建立这个数组...

1、数组结果是一个二维数组:Arr(1,12),Arr(12)是一维数组,这是错误之一。

2、区域引用的正确写法是:Range("a" & r & ":l" & r)

3、用区域创建数组时,数组不带下标,正确格式为:

arr = Range("a" & r & ":l" & r)

4、用区域创建数组,该数组必须是动态数组,声明时不带下标:

Dim arr()

QUOTE:

Option Base 1
Sub 建立数组()
Sheet1.Select
Dim r As Long
r = Selection.Row
Dim arr()
arr = Range("a" & r & ":l" & r)
End Sub

TA的精华主题

TA的得分主题

 楼主| 发表于 2007-12-29 18:21 | 显示全部楼层
经常拜读总版主的作品,每次总有一种耳目一新的感觉!谢谢在百忙中关注我的疑问!

TA的精华主题

TA的得分主题

 楼主| 发表于 2007-12-29 18:50 | 显示全部楼层

Sub 填充数据()
Sheets("数据库").Select
r = Selection.Row
Dim arr()
arr = Range("a" & r & ":l" & r)
'填充第一列
Sheets("打印输出").Cells(2, 7) = arr(r, 2)
Sheets("打印输出").Cells(2, 15) = arr(r, 2)
Sheets("打印输出").Cells(2, 3) = arr(r, 1)
Sheets("打印输出").Cells(2, 11) = arr(r, 1)


Sheets("打印输出").Cells(3, 3) = arr(r, 3)
Sheets("打印输出").Cells(3, 11) = arr(r, 3)


Sheets("打印输出").Cells(3, 7) = arr(r, 4)
Sheets("打印输出").Cells(3, 15) = arr(r, 4)

Sheets("打印输出").Cells(4, 3) = arr(r, 5)
Sheets("打印输出").Cells(4, 11) = arr(r, 5)


Sheets("打印输出").Cells(5, 3) = arr(r, 6)
Sheets("打印输出").Cells(5, 11) = arr(r, 6)

Sheets("打印输出").Cells(6, 3) = arr(r, 7) + " " + arr(r, 8)
Sheets("打印输出").Cells(6, 11) = arr(r, 7) + " " + arr(r, 8)


Sheets("打印输出").Cells(7, 3) = arr(r, 9) + " " + arr(r, 10)
Sheets("打印输出").Cells(7, 11) = arr(r, 9) + " " + arr(r, 10)


Sheets("打印输出").Cells(8, 3) = arr(r, 11)
Sheets("打印输出").Cells(8, 11) = arr(r, 11)


Sheets("打印输出").Cells(8, 7) = arr(r, 12)
Sheets("打印输出").Cells(8, 15) = arr(r, 12)

End Sub

请问错误在哪里,(下标越界!)

TA的精华主题

TA的得分主题

 楼主| 发表于 2007-12-29 19:24 | 显示全部楼层

这个已经可以用了,但代码可以有点啰嗦,大家指正下吧,谢谢了!

EhfgQ6GM.rar (47.75 KB, 下载次数: 20)
[此贴子已经被作者于2007-12-29 22:19:16编辑过]

TA的精华主题

TA的得分主题

发表于 2007-12-30 00:50 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册

回复:(yuan710825)

函数版,请测试:

Ze6C7DM3.zip (55.09 KB, 下载次数: 70)
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-24 09:38 , Processed in 0.034233 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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