文档介绍:Excel VBA 编程的常用代码
时间 :2009-11-27 21:18:01 来源 : 本站 作者 : 未知 我要投稿 我要收
藏 投稿指南
具体的步骤是, 代码从活动工作表上活动单元格周围的当前单元格区域中读取数
据。宏将这些数据存储在一个数组中, 计算每一行和每一列中的单元格总数, 然
后将输出显示在工作表中。数组的大小由当前区域中的单元格数量决定。
注意:此宏不会在工作表中添加任何公式, 因此如果该范围内的单元格总数有变
化,则必须重新运行宏。
使用以下示例之前,请执行以下步骤:
1. 打开一个新工作簿。
2. 在“工具”菜单中,指向“宏”,然后单击“ 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 
r = .
c = .
' 重新计算总行数和总列数并将结果存储到数组中。
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
3. 突出显示要求和区域中的一个单元格,在“工具”菜单中,指向“宏”并单
击“宏”。
4. 选择 TotalRowsAndColumns 宏,然后单击“运行”。
注意: 要执行与本示例中的运算类似的运算, 可以修改宏代码。 例如,要对选定
范围内的单元格中包含的值进行减法、乘法或除法运算,可以更