簡體   English   中英

計算特定范圍的平均值

[英]Calculate average of specific range

我正在嘗試計算每個類別(a,b,c)的第三行數字的平均值:

數據
在此處輸入圖像描述

例如:所有“a”的平均值,所有“b”的平均值,所有“c”的平均值。

然后,我想插入三行,一行用於“a”,一行用於“b”,一行用於“c”,第三列的平均值並刪除舊值。 它看起來像這樣:
在此處輸入圖像描述

Sub calculate_averages()
    
    ActiveWorkbook.Worksheets("Sheet1").sort.SortFields.Clear

    ActiveWorkbook.Worksheets("Sheet1").sort.SortFields.Add2 Key:=Range("A2:A10") _
      , SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal

    With ActiveWorkbook.Worksheets("Sheet1").sort
        .SetRange Range("A2:C10")
        .Header = xlNo
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
    
    Selection.Offset(0, 2).Select
    Set rg1 = Selection
    
    n_rows = rg1.Rows.Count
    
    For i = 1 To n_rows
        
    Next
        
    media = Application.Average(rg1)
    MsgBox (media)
               
End Sub
    
Sub selecionar()
    Range("A2").Select
    Range(Selection, Selection.End(xlDown)).Select
End Sub

我也同意 Fernando 和 Michelle 的觀點,但我對您的第一個 sub 進行了一些更改,可能會解決您的問題:

Sub calculate_averages()

Dim r, rg1 As Range

ActiveWorkbook.Worksheets("Sheet1").sort.SortFields.Clear
ActiveWorkbook.Worksheets("Sheet1").sort.SortFields.Add2 Key:=Range("A2:A10") _
    , SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets("Sheet1").sort
        .SetRange Range("A2:C10")
        .Header = xlNo
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With

Set rg1 = Selection.Offset(0, 2)

For each r in rg1
    
media = Application.Average(rg1)
MsgBox (media)

Next
           
End Sub

我不確定你的第二個潛艇的目的。 你打算連續運行兩個潛艇嗎? 如果是這樣,他們可能應該只是一個潛艇。 如果是這種情況,有比使用.Selection.Select更好的方法來做這一切,依靠像這樣的這些方法是冒險的東西。

編輯:我的代碼也可能無法正常工作,因為我不確定.Selection是什么...我假設此代碼是在用戶在一列中選擇了幾行之后運行的? 如果沒有,你需要重新考慮更多的事情。 但最明顯的問題是你在ForNext之間沒有任何命令

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM