当前位置: 首页 > 知识库问答 >
问题:

VBA宏,用于在具有动态范围的每列的最后一行中插入平均值

司空温书
2023-03-14

我有许多列(在Excel文件中)表示一年中的月份;每一列都有许多记录,我希望能够运行一个宏,在每一列的最后一行插入一个平均值为的单元格。每列的第一个单元格是标题,因此我需要包括从第2行到列中最后一条记录的单元格。每次使用宏时,列和行的数量都会有所不同。我将非常感谢你的帮助。谢谢

共有1个答案

穆展鹏
2023-03-14

这里有一个现成的解决方案。它从第2行开始计算每列的平均值。

Sub AverageColumn()
    Dim count As Integer
    Dim sum As Integer
    Dim lastCol As Integer
    lastCol = ActiveSheet.UsedRange.Columns(ActiveSheet.UsedRange.Columns.count).Column
    For c = 1 To lastCol
        sum = 0
        count = 0
        ActiveSheet.Cells(2, c).Select
        Do While ActiveCell.Value <> ""
            sum = sum + ActiveCell.Value
            count = count + 1
            ActiveCell.Offset(1, 0).Activate
        Loop
        ActiveCell.Value = sum / count
    Next c
End Sub
 类似资料:
  • 我按照问题中的建议如何避免在Excel VBA宏中使用Select,但仍然得到“应用程序定义的或对象定义的错误”。 这是我的最后一个版本: 这是否与范围中变量(Counter1、Counter2)的使用有关?

  • 我插入数据到一个电子表格与新的谷歌工作表API v4,代码完美的工作和数据它是插入良好的工作表。 但是如何找出最后一行有数据来添加后面的数据呢? A1符号中有什么技巧吗? 我需要一个相当于。

  • 我有一个excel,它有多个行和列,每行的列值范围不同。 需要一个宏,该宏将删除每行中除第一个和最后一个以外的所有单元格,并将最后一个值粘贴到第一个值旁边。 尝试了以下脚本:

  • 我需要计算每行的平均值,并存储在最后一个元素中。我设法做到了,但后面的行是前一行的累计平均值。例如: 输入: 1 2 3 0 4 5 6 0 输出: 1.00 2.00 3.00 2.00 4.00 5.00 6.00 7.00(应为5.00) 这是我的代码 提前谢谢。:)

  • 我正在使用SQL Server,数据库中有下表: 到目前为止我尝试了什么(错误的,因为它不计算每个组的平均值,而是计算所有列的总平均值):

  • 问题内容: 我想在具有动态列的表中添加值。我设法用动态列创建了一个表,但无法弄清楚如何插入数据。 问题答案: 您还可以使用数据库元数据获取列名。这样的好处是,您甚至不需要知道列名,而是可以在您的代码中动态检索它们。 一旦有了列名,就可以像平常一样使用它(List.size()当然会给出列数)。 更新: 此代码假定您将正确类型的对象传递给PreparedStatement.setObject(Obj