本帖最后由 爱疯 于 2013-4-19 11:40 编辑
有了前面的基础,我们再来看下单元格赋值和数组赋值。 1、把单元格数据搬入内存 Sub test()
Dim arr
arr= [A1:B10]
arr= range(“a1:b10”)
arr=sheet2.range(“a1:c500”)
End sub
在这里只说一下,数组的定义或声明。 Dim arr as Variant '声明一个变量,这个变量是一个可以转化成数组的Variant类型(可以省略),不能声明其他数据类型 这种定义方式最为灵活,推荐使用。(好处以后再说) 2、把单元格数据搬入内存 range(单元格区域)=arr ,要想准确把arr数组元素赋给单元格区域,要特别注意arr数组维数和大小。 实例:求合计数。(合计=数量*金额)
大家想想,都可以用什么方法? 先想想工作表中用函数怎么做? 1)在C2单元格输入公式=a2*b2,下拉填充。 2)选定C2:C11,在C2输入=A2*B2,CTRL+ENTER。 3)选定C2:C11, 在C2输入=A2:A11*B2:B11,CTRL+SHIFT+ENTER VBA中,基本上也是这种思想:一种是循环赋值法,另一种是数组公式法。 [HIDE
] - [/font][/align][align=left]Sub 方法1()
- Dim arr '声明一个变量用来盛放单元格数据
- Dim x As Integer
- arr = Range("a2:c11") '把单元格数据搬入到arr里,它有4列4行
- For x = 1 To 10 '通过循环在arr数组中循环
- arr(x, 3) = arr(x, 1) * arr(x, 2) '数组的第4列(金额)=第3列*第2例
- Next x
- Range("a2:c11") = arr '把数组放回到单元格中
- End Sub
- Sub 方法2()
- Dim arr '声明一个变量用来盛放单元格数据
- arr = [a2:a11*b2:b11] '可以理解为数组公式法
- [c2:c11] = arr
- End Sub[/align][align=left][font=仿宋_GB2312]
复制代码
[/HIDE] |