作者:iamlaosong

将工作表中的数据赋给数组或者将数组的数据赋给工作表,一般有两种。一种是循环的方法,一个一个的传,这样的方法一般用于须要对每一个数据特别处理的场合,还有一种是一次性用赋值语句传,就速度来说,另外一种方法要快得多。看以下例程:

Sub tt()Dim arr1(240000, 4)Dim arr2()lineno = [A1048576].End(xlUp).Row      '行数'循环给数组赋值。数组myarr必须先定义大小t1 = Now()For i = 3 To linenok = i - 2arr1(k, 1) = Cells(i, 1)arr1(k, 2) = Cells(i, 2)arr1(k, 3) = Cells(i, 3)arr1(k, 4) = Cells(i, 4)Next it2 = Now()Cells(2, 5) = TimeValue(t2) - TimeValue(t1)'一次性给数组赋值。数组arr不能定义大小和类型t1 = Now()arr2 = Range("a3:d" & lineno)t2 = Now()Cells(2, 6) = TimeValue(t2) - TimeValue(t1)MsgBox arr1(20000, 2) & "=" & arr2(20000, 2)End Sub

只是要注意的是,循环赋值的方法数组必须先定义维数和大小,然后才干使用,而一次性赋值的正好相反。不能定义维数和大小,否则会报错。此外注意,数据一次性读入数组arr2后。arr2成为一个二维数组。即使是读取一列数据。也是二维数组,数组下标都是从1開始,即arr2(1,1),arr2(2,1),arr2(3,1),arr2(4,1),。。

另一点要注意,当读取的工作表非当前工作表时。range对象后面须要加上valuekeyword,否则会报错,比如:

    '方法一:直接读取DaiLiNo = Sheets("代理点").[B65536].End(xlUp).Row           '行数DaiLiName = Sheets("代理点").Range("B2:B" & DaiLiNo).Value'方法二:激活工作表后读取Worksheets("代理点").SelectDaiLiNo = [B65536].End(xlUp).Row           '行数DaiLiName = Range("B2:B" & DaiLiNo)DaiLiNo = DaiLiNo - 1                      '数据从第2行開始,所以总数量要减一

假设赋值范围用行列号表示,则用下列语句(pos_fst, pos_ems是两个參数,各自是数据起始行和数据所在列):

maxrow = Cells(65536, pos_ems).End(xlUp).Row

Mail = Range(Cells(pos_fst, pos_ems), Cells(maxrow, pos_ems))

用上面的例程測试发现,即使20多万条数据,第一种方法用时非常少(4.62963E-05)。而另外一种方法却差点儿不用时间(0)。

转载于:https://www.cnblogs.com/yxwkf/p/5369971.html

【VBA研究】怎样将单元格数据赋给数组相关推荐

  1. 【VBA研究】如何将单元格数据赋给数组

    作者:iamlaosong 将工作表中的数据赋给数组或者将数组的数据赋给工作表,一般有两种,一种是循环的方法,一个一个的传,这种方法一般用于需要对每个数据特别处理的场合,另一种是一次性用赋值语句传,就 ...

  2. 【VBA研究】关于单元格颜色值的十六进制赋值

    作者:iamlaosong 1.单元格颜色的设置 背景颜色用属性Interior,字体颜色用属性Font.颜色的值,可以用Colorindex,这种方法只有Excel规定的56中颜色,如下图所示: 也 ...

  3. c修改datatable单元格的值_神奇的VBA编程:批量拆分单元格数据

    批量对单元格区域内每个单元格中的数据按照一定的规则进行拆分是职场工作中经常碰到的操作.Excel数据选项卡中"分列"提供了基础的功能.能帮助用户通过鼠标快速分列数据. 本篇< ...

  4. 如何读取Excel表格中不同sheet表的同一位置单元格数据,并绘制条形图呢?

    作者 | 黄伟呢 来源 | 数据分析与统计学之美 今天,有位朋友在群里面咨询了一个问题:如何读取Excel表格中"不同sheet表"的同一位置单元格数据,并绘制条形图呢? 有人提议 ...

  5. VBA:Excel选中单元格后,相同值高亮显示

    VBA:Excel选中单元格后,相同值高亮显示 场景 代码释义 Excel中实际执行效果 场景 在Excel数据核对中,要检查同样的数据在表格里是否重复出现,可以利用重复值筛选的方式,但是重复值筛选这 ...

  6. Excel·VBA自定义函数筛选单元格区域重复值

    贴吧提问<哪位大神知道要怎么实现?>,Excel内置函数使用比较麻烦,VBA字典实现比较直观 自定义函数UNIQUE_IF筛选单元格区域中的值,可以选择返回其中的唯一值或重复值,并用分隔符 ...

  7. 高效便捷地创建单元格数据图表

    您能想象折线图.柱状图这些图表被放在一个小小的单元格中的样子吗?Excel 2010的迷你图功能为您提供了这样的便捷体验,让您高效便捷地创建单元格数据图表! 1.打开您想要创建迷你图的Excel工作簿 ...

  8. java读取excel某个单元格的值_[转载]Java读取Excel中的单元格数据

    目前网上能找到的读取Excel表格中数据的两种比较好的方案:PageOffice好用开发效率高:POI免费.供大家参考,针对具体情况选择具体方案. 1. PageOffice读取excel impor ...

  9. Excel如何将一个单元格数据拆分为多行单元格

    今天跟大家分享一下Excel如何将一个单元格数据拆分为多行单元格 1.如下图是从文档中复制的数据,现在我们想要将单元格中的数据按照空格拆分为多行单元格数据. 2.首先我们选中数据单元格区域 3.然后点 ...

最新文章

  1. java 启动 jetty_如何通过命令行启动或者关闭 Jetty 服务器
  2. DSP/BIOS实时操作系统中PIP对象多任务间传递数据示例程序
  3. ML之SVM:调用(sklearn的lfw_people函数在线下载55个外国人图片文件夹数据集)来精确实现人脸识别并提取人脸特征向量
  4. Nginx源代码安装
  5. Qt CMake命令参考
  6. SQL语言:嵌入式SQL知识笔记
  7. php numeric乘法,PHP is_numeric()用法及代码示例
  8. PHP中等良好优秀,成绩优秀,中等,良好怎么分的啊?分为哪几个?
  9. SAE学习-使用SAE的Storage服务存储图片
  10. 再谈UDP协议—浅入理解深度记忆
  11. 我的世界java版种子多村庄_《我的世界》“村庄与掠夺”PE版种子推荐,出生点就7个村庄相连...
  12. 使用 Python 进行数据清洗的完整指南
  13. 外卖行业现状分析_2020年中国外卖行业市场现状和发展趋势分析 外卖下沉趋势明显「组图」...
  14. Python类和对象以及继承多态(超详细,小白也可以懂)
  15. opencv学习日记——娜扎小姐姐与猫咪的图像融合,超美哈哈哈
  16. 人工智能编程语言介绍
  17. CCCF精选 | 李德毅:机器如何像人一样认知——机器的生命观
  18. 信息系统项目管理-项目进度管理-(六)
  19. python 学习过程中所收藏博客原文链接666666
  20. java信徒齐(七)步走

热门文章

  1. Alibaba-AndFix Bug热修复框架的使用
  2. Android常用开源库之Universal-image-loader
  3. 斯蒂文斯理工学院计算机博士,美国斯蒂文斯理工大学——招收全奖土木工程博士生 - 导师招生 - 小木虫 - 学术 科研 互动社区...
  4. make时候说找不到makefile_找不到答案的时候,就去看一看这个世界
  5. Qt 事件系统的解读
  6. AtCoder AGC007E Shik and Travel (二分、DP、启发式合并)
  7. ie浏览器修复_腾讯安全:IE浏览器曝远程执行代码漏洞 腾讯安全强势推出漏洞修复工具...
  8. php httphelper,C#的HttpHelper类post ,get
  9. PE知识复习之PE的导出表
  10. go hello world第一个程序