程序猿会怕VBA?-把大象放进冰箱里要几步

把大象放到冰箱里,需要几步?答:“三步,第一步把冰箱门打开;第二步把大象放进去;第三步把冰箱门带上”。

日常我们处理表格,简单起来也只需要三步,第一步把表格放到数组里;第二步把数组进行处理;第三步把数组放回表格。

第一步,把表格放到数组里。

Dim  arr  As Variant  ‘定义一个数组

arr  = Range("A1:N100")  ‘表格放到一个二维数组里

扩展说明

1、Variant 可变类型。这是一个神奇的变量,它可以放入任何数据,包括数组、对象等等。说到这个变量我就忍不住啰嗦几句。刚接触VBA,最头疼的就是创建数组了,尤其是把单元格里的至批量赋值给数组的时候,我只能一个单元格一个单元格的赋值,不仅麻烦速度还慢。如果有的列是数值型,有的列是文本型,有的列甚至是日期型,那我更是要分别创建N个不同类型的数组进行赋值。阅书无数后,我发现了这个神奇的变量,只需要这么简单粗暴的一句话,整个表格马上收入小数组中。

2、Range("A1:N100")  中的“A1:N100"决定了表格的位置,A1是表格左上角的单元格位置,N100是表格右下角的单元格位置。

3、命名空间。由于你操作的可能是多个EXCEL文件(学名:工作表),或者多个工作簿,系统就会疑惑你到底是要装载哪个工作薄的Range呢?这时候就需要加前缀命名空间了。最通用的办法如下:

Dim wb As Workbook      ’定义工作表wb变量

Dim st    As Worksheet          ’定义工作薄st变量

set  wb = Workbooks.Open("这里填写工作表名称,带路径带后缀")

set st = wb.Worksheets("这里填写工作簿名称")

如果是你写代码的这个工作表,可以直接用thisworkbook,如下:

set st = thisworkbook.Worksheets("这里填写工作簿名称")

arr = st.Range("开始列开始行:终止列终止行")

第二步,操作数组

面对身为程序猿的你,我在这一步就不用多介绍了。请你在这一步尽情驰骋吧。不过VBA里并没有那么丰富多彩的函数可以调用,可以时不时的写点冒泡小算法也是蛮有趣的。

二维数组的循环处理

arr(1 to 20 , 1  to  14)

For i = 1 to 20

    For j = 1 to 14

      就在这儿循环处理arr(i,j)的值

    Next j

Next i

第三步,把数组放回到表格里

Range("A1:N100") = arr

同样,有时候我们需要指定命名空间,就按照第一步的方法加前缀:

st.Range("开始列开始行:终止列终止行") = arr

喏,就是这么简单。

如果你问我如果我要操作两个表怎么办?那我会告诉你,你就开俩冰箱呗(把两个表格分别放在两个数组里),两个冰箱解决不了的问题就开三个!

你可能感兴趣的:(程序猿会怕VBA?-把大象放进冰箱里要几步)