小小科普一下,这段代码是“过程”,不是“函数”。函数必须有返回值,并且保存在与函数名相同的变量中,函数名由关键词“FUNCTION”引导。
Option Explicit ' 强制显式声明模块中的所有变量,防止未声明变量产生的意外错误
Option Base 1 ' 声明数组下标的缺省下界为1
Sub MatirxArray() ' 过程代码开始
Dim a, b, c, lastrow ' 定义四个变量
Dim rng(16) As Range ' 定义数组rng,设定包含16个元素,每个元素都为range对象
Set rng(1) = Range("B6:C6") ' 指定数组rng的第1个元素为单元格区域B6:C6
Set rng(2) = Range("E6:F6") ' 同上类推
Set rng(3) = Range("H6:I6")
Set rng(4) = Range("K6:L6")
Set rng(5) = Range("N6:O6")
Set rng(6) = Range("Q6:R6")
Set rng(7) = Range("T6:U6")
Set rng(8) = Range("W6:X6")
Set rng(9) = Range("Z6:AA6")
Set rng(10) = Range("AC6:AD6")
Set rng(11) = Range("AF6:AG6")
Set rng(12) = Range("AI6:AJ6")
Set rng(13) = Range("AL6:AM6")
Set rng(14) = Range("AO6:AP6")
Set rng(15) = Range("AR6:AS6")
Set rng(16) = Range("AU6:AV6")
Debug.Print rng(1).Cells(1, 2).Value ' 显示rng第1个元素(B6:C6)中第1行第2列单元格(C6)的值
lastrow = 9 ' 为变量lastrow赋值为9,即,指定数据填充的最后一行
For a = 1 To 14 ' 第一重循环1~14
For b = 2 To 15 ' 第二重循环2~15
For c = 3 To 16 ' 第三重循环3~16
If a < b And b < c Then ' 条件判断
Range("A" & (lastrow + 1)) = rng(a).Cells(1, 1).Value ' 在A列新行中填入rng第a个元素的第1行第1列单元格的值
Range("B" & (lastrow + 1)) = rng(a).Cells(1, 2).Value ' 同上类推
Range("C" & (lastrow + 1)) = rng(b).Cells(1, 1).Value
Range("D" & (lastrow + 1)) = rng(b).Cells(1, 2).Value
Range("E" & (lastrow + 1)) = rng(c).Cells(1, 1).Value
Range("F" & (lastrow + 1)) = rng(c).Cells(1, 2).Value
lastrow = Range("A65536").End(xlUp).Row ' 更新数据填充的最后一行
End If ' 结束判断
Next ' 第三重循环
Next ' 第二重循环
Next ' 第一重循环
End Sub ' 结束过程代码
这个应该是读取EXCEL的一段代码吧。。。