第3例我们学会了如何把单元格中的数据搬入内存,变身为VBA数组。那么,VBA数组怎么输回到单元格中呢?就象菜做好了,怎么更快的上桌呢? 1、二维数组的导入: VBA中常见的数组形式有一维数组和二维数组,相比一维数组,二维数组输入则较为简单,直接放在一个单元格区域中就可以,即: Range(单元格区域)=arr '这里arr是一个二维数组,值得注意的是如果单元格区域小于二维数组,则显示二维数组的前面一部分数据,而如果单元格区域大于二维数组的数据储存量,则会显示错误值。 二维数组导入单元格示例: 如下图所示,要求在D列计算金额 代码: Sub test() Dim arr '声明一个变量用来盛放单元格数据 Dim x As Integer arr = Range("a2:d5") '把单元格数据搬入到arr里,它有4列4行 For x = 1 To 4 '通过循环在arr数组中循环 arr(x, 4) = arr(x, 3) * arr(x, 2) '数组的第4列(金额)=第3列*第2例 Next x Range("a2:d5") = arr '把数组放回到单元格中 End Sub 2、一维数组的导入: 一维数组只有一排数据,而导入到单元格中却有两种选择:导入到一行里 或 导入到一列中。 1)导入成为一行数据。 VBA 一维数组的排列方式 等同于 单元格中行方向排列,所以可以直接导入工作表的一行单元格里。而如果要放在一列中,则需要调用工作表函数transpose转置后再导入。例: Sub test1() Dim arr(1 To 5) '声明一维数组 For x = 1 To 5 arr(x) = x * 2 '通过循环给每个位置赋值 Next x Range("A1:E1") = arr '把数组导入到excel中的a1:e1单元格中 Range("A1:A5") = Application.Transpose(arr) '如果是放在一列中,就需要对数组进行转置后再存放 End Sub
附1-3例链接:
[此贴子已经被作者于2010-8-6 12:26:41编辑过] |