Excel vba数组中的总行数和总列数
(2010-09-20 12:02:47)
标签:
教育 |
分类: 电脑学习 |
具体的步骤是,代码从活动工作表上活动单元格周围的当前单元格区域中读取数据。宏将这些数据存储在一个数组中,计算每一行和每一列中的单元格总数,然后将输出显示在工作表中。数组的大小由当前区域中的单元格数量决定。
注意:此宏不会在工作表中添加任何公式,因此如果该范围内的单元格总数有变化,则必须重新运行宏。
使用以下示例之前,请执行以下步骤:
-
打开一个新工作簿。
-
在“工具”菜单中,指向“宏”,然后单击“Visual Basic 编辑器”(或者简单地按下 ALT+F11 组合键)。在“Visual Basic 编辑器”中的“插入”菜单中,单击“模块”。
将以下示例代码键入或粘贴到模块中:
Sub TotalRowsAndColumns() ' 此宏假定您已从 ' 要计算单元格总数的矩形区域内 ' 选择了一个单元格或一组单元格。行和列的单元格总数将出现在 ' 当前区域下面的行和右侧的列中。 Dim r As Integer Dim c As Integer Dim i As Integer Dim j As Integer Dim myArray As Variant ' 将 myArray 声明为变量将使数组可以接收 ' 一组单元格。此时,数组将自动转换为 ' 以下标 myArray(1,1) 开始的数组。 ' 指当前所选单元格周围的区域。 With Selection.CurrentRegion r = .Rows.Count c = .Columns.Count ' 重新计算总行数和总列数并将结果存储到数组中。 myArray = .Resize(r + 1, c + 1) ' 在下面的嵌套循环中,变量 i 跟踪 ' 行号,变量 j 跟踪 ' 列号。j 在可用列中每循环一次, ' i 就递增一,而 j ' 则重新从一到 c 循环一次。 For i = 1 To r For j = 1 To c ' 行 i 的总数 myArray(i, c + 1) = myArray(i, c + 1) + myArray(i, j) ' 列 j 的总数 myArray(r + 1, j) = myArray(r + 1, j) + myArray(i, j) ' 总计 myArray(r + 1, c + 1) = myArray(r + 1, c + 1) + myArray(i, j) Next j Next i ' 将数组返回工作表,数组中现在包含一个 ' 新行和一个新列,用于存储总数。 .Resize(r + 1, c + 1) = myArray End With End Sub
-
突出显示要求和区域中的一个单元格,在“工具”菜单中,指向“宏”并单击“宏”。
-
选择
TotalRowsAndColumns 宏,然后单击“运行”。 注意:要执行与本示例中的运算类似的运算,可以修改宏代码。例如,要对选定范围内的单元格中包含的值进行减法、乘法或除法运算,可以更改数学运算符。
原文摘自:http://www.vbacn.com/html/VBA/200901/02-10004.html