【发布时间】:2012-01-07 03:52:54
【问题描述】:
我需要帮助编写一个循环来查找“F”列中的 10 个最高值。对于选择的 10 个最高值中的每一个,我想将该值(以及 C、D 和 E 列中的相关值)粘贴到另一个电子表格中。
谢谢
【问题讨论】:
-
数据 - 过滤器 - 自动过滤器。单击下拉箭头。选择“前 10 名...”。
我需要帮助编写一个循环来查找“F”列中的 10 个最高值。对于选择的 10 个最高值中的每一个,我想将该值(以及 C、D 和 E 列中的相关值)粘贴到另一个电子表格中。
谢谢
【问题讨论】:
Aggregate 函数旨在忽略错误值(除其他外)。这是SUBAggregate 和Large 以获得触发复制代码的阈值
Sub GetTop10(r As Range)
Dim v As Variant
Dim t As Variant
Dim i As Long
' 14 = function LARGE
' 6 = ignore error values
' 10 = get 10'th largest value
t = Application.WorksheetFunction.Aggregate(14, 6, r, 10)
v = r
For i = 1 To UBound(v, 1)
If Not IsError(v(i, 1)) Then
If v(i, 1) >= t Then
' copy r.cells(i,-2).resize(1,4) to your other sheet
End If
End If
Next
End Sub
【讨论】: