在上一篇文章的程序的同一部分中,使用的常规解决方案是数组的解决方案,今天我将解密该数组。
数组概念
数组是一个列表或一组数据表。它是具有相同固有数据类型的连续可索引元素的集合,并且数组中的每个元素都有唯一的索引号。更改一个元素不会影响其他元素。
该数组存储在内存中,并且该集合的每个子集都可以通过索引号获得。
我个人认为数组可以理解为虚拟Excel表,它在内存中存储(数组)excel数据,但是看不到。
在上一篇文章中,您可以了解从A列到D列的数组放置在数组中并存储在内存中。
数组的两个特征:
1、读写速度快
VBA总是比读取内存中的值慢。您可以借助VBA阵列来加速程序。
2、无法永远保存
数据存储在工作表区域中,并且可以永久存储。但是,存储在内存中的变量数组和常量数组会受到其范围和生命周期的影响。
在进程结束后,将自动释放进程级别的私有数组变量或常量数组,从而终止其生命周期;
关闭excel应用程序后,将自动释放公共变量数组和常量数组。也就是说,重新启动excel后,以前的任何数组都不存在。
计算机的计算过程是:读取硬盘中的数据,通过内存将值传递给CPU进行计算,计算完成后再通过内存将其保存在硬盘中。 前一篇文章的常规解决方案是根据上述常规方法进行操作。每次运行都必须经过上述5个步骤。
如果使用数组解决方案,则Excel将数组存储在硬盘上,提取到内存中,然后传递给CPU进行计算,然后传递给内存进行存储。完成所有计算后,内存结果将保存在硬盘上。
使用数组执行操作,并且仅在第一次提取和最后一次保存期间与硬盘交换数据。但是,在常规解决方案中,每次操作都必须将数据传输到硬盘上,因此操作会变慢。
数组分类
根据数组元素是否固定,可以分为静态数组和动态数组;
根据数组尺寸,可以分为一维数组,二维数组等,最多只能为60维。
数组的尺寸
该数组可以是一维,二维,最多可以是60维。对于excel工作表,
excel的每个行或列都可以转换为一维数组,而多个行和列可以转换为二维数组。
具有两位以上数字的数组很少出现在VBA操作中,因此我们将重点关注一维数组和二维数组。
1、一维数组
在数组公式中,在A1:F1区域中输入数组公式:= {1,2,3,4,5,6}
,然后按Ctrl Shift Enter,您可以获得A1:F1之间的水平区域的值。
在A1:A6区域中输入数组公式:= {1; 2; 3; 4; 5; 6},然后按
Ctrl Shift Enter,您可以获取A1:A6之间的垂直区域的值。
VBA阵列也可以达到相同的效果:
2.1个VBA代码
子数组()
Dim arr
arr = [{1,2,3,4}]
Range(“ a3:d3”)= arr
结束子

[{1,2,3,4}]代表一维水平阵列。
应注意,VBA的一维数组在Excel中代表一列数字,因此使用上述代码将数组的内容写到一行是可行的。但是,如果要将一维数组写成一行,则需要转换该数组。
子数组()
Dim arr
arr = [{1,2,3,4}]
Range(“ a3:a6”)= Application.WorksheetFunction.Transpose(arr)

结束子
Application.WorksheetFunction.Transpose(arr)
转置函数,可以转换数组的行和列
2、二维数组
对于具有三行三列的数组,我们可以使用数组公式:= {1,1,1; 2,2,2; 3,3,3}
在VBA中,数组也可以用来表示二维数组,如下例所示
请注意使用“;”分割数组签名
子二维数组()
[A1:C3] = [{1,1,1; 2,2,2; 3,3,3}]
结束子
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/shumachanpin/article-341727-1.html
不过男同的比例远远大于女同
看你的反应
确实帅