加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

Excel vba数组中的总行数和总列数

(2010-09-20 12:02:47)
标签:

教育

分类: 电脑学习

    在 Excel 中,可以使用数组来计算和操作工作表中的数据,还可以使用宏将某个范围内的单元格中的值存储到一个数组中。本节中的示例宏代码将在一个矩形单元格区域中添加一行和一列,以包含该区域中每一行和每一列中的单元格总数。

具体的步骤是,代码从活动工作表上活动单元格周围的当前单元格区域中读取数据。宏将这些数据存储在一个数组中,计算每一行和每一列中的单元格总数,然后将输出显示在工作表中。数组的大小由当前区域中的单元格数量决定。

注意:此宏不会在工作表中添加任何公式,因此如果该范围内的单元格总数有变化,则必须重新运行宏。

使用以下示例之前,请执行以下步骤:

  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 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
    
  3. 突出显示要求和区域中的一个单元格,在“工具”菜单中,指向“”并单击“”。

  4. 选择 TotalRowsAndColumns 宏,然后单击“运行”。

    注意:要执行与本示例中的运算类似的运算,可以修改宏代码。例如,要对选定范围内的单元格中包含的值进行减法、乘法或除法运算,可以更改数学运算符。
    原文摘自:http://www.vbacn.com/html/VBA/200901/02-10004.html

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有