【问题标题】:Excel VBA Macro - How to grab Median and Average of column and print out resultsExcel VBA 宏 - 如何获取列的中值和平均值并打印结果
【发布时间】:2018-06-12 11:26:07
【问题描述】:

我正在尝试查找列名“总周期时间”,然后在列的最后我想要平均值,然后在整个列的中值下方的一行。

下面是一个开始,但它似乎只从一个表中提取,因此是 Table14 参考。我不明白如何说明只看这个活动表。

Sub Macro10()
'
' Macro10 Macro
'
Range("U" & Cells.Rows.Count).End(xlUp).Select
ActiveCell.Offset(1, 0).Select
    Application.CutCopyMode = False
    ActiveCell.FormulaR1C1 = _
        "=AVERAGE(Table14[[#Headers],[#Data],[Total Cycle Time]])"
    ActiveCell.Offset(1, 0).Select
    Application.CutCopyMode = False
    ActiveCell.FormulaR1C1 = _
        "=MEDIAN(Table14[[#Headers],[#Data],[Total Cycle Time]])"

'
End Sub

【问题讨论】:

    标签: vba excel


    【解决方案1】:

    假设在工作表的某处,我们有一个标题单元格,其下方的数据如下:

    运行这个简短的宏将:

    1.定位数据的标题和关联列
    2. 将所需的统计数据放在值下方的单元格中

    Sub SaveStats()
        Dim header As Range, DataRange As Range
    
        Set header = Cells.Find(What:="total cycle time", after:=Cells(1, 1))
        Set DataRange = Range(header, Cells(Rows.Count, header.Column).End(xlUp))
    
        With Application.WorksheetFunction
            Cells(DataRange.Rows.Count + DataRange.Row, DataRange.Column).Value = .Average(DataRange)
            Cells(DataRange.Rows.Count + DataRange.Row + 1, DataRange.Column).Value = .Median(DataRange)
        End With
    End Sub
    

    注意:

    宏没有错误处理。如果header下面没有数据就会死掉。

    【讨论】:

    • 我立即收到一个错误,因为 Sub SaveStats() 检测到不明确的名称:SaveStats
    • @JoBe 不确定。我只进行了一些简单的测试。
    • 第一行“Sub SaveStats()”
    • @JoBe 只需更改名称......它与旧宏冲突...... .
    • 很糟糕,我没有删除通用的“子宏#”
    猜你喜欢
    • 2023-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-08
    • 1970-01-01
    • 1970-01-01
    • 2020-10-01
    • 1970-01-01
    相关资源
    最近更新 更多