在彩色范围内查找中位数

Find Median in a colored range

我有以下问题需要在 Excel 2010 VBA 代码

中解决

Range("A:A") 中,我有很多数值。只有其中一些以颜色突出显示。 (index = 6 [黄色])。我需要 Excel VBA 代码来获取黄色突出显示值之间的中值,并将非突出显示的单元格留在计算之外。

我已经尝试过代码,但它总是给我突出显示范围内的第一个值,而不是该范围的中值。

Dim amarelosMediana As Range
Dim mediana As Double

For Each amarelosMediana In Range([a1], Cells(Rows.count, "A").End(xlUp))
    If amarelosMediana.Interior.ColorIndex = 6 Then
        mediana = Application.WorksheetFunction.Median(amarelosMediana)
    End If
Next amarelosMediana

ActiveSheet.Range("C3") = "Mediana no intervalo de confianca"
ActiveSheet.Range("D3") = mediana

如您所见,我按照 Whosebug 中的一些教程中所述使用 Application.WorksheetFunction.Median(amarelosMediana) 来获取中值,但它不起作用。

有什么想法吗??

编辑:修复了一些语法。您必须将所有突出显示的单元格传递到一个主范围,然后 运行 主范围上的函数。

Sub Macro1()
Dim amarelosMediana As Range
Dim tempRng As Range
Dim mediana As Double

Set tempRng = Nothing
For Each amarelosMediana In Range([a1], Cells(Rows.Count, "A").End(xlUp))
    If amarelosMediana.Interior.ColorIndex = 6 Then
        If tempRng Is Nothing Then
            Set tempRng = amarelosMediana
        Else
            Set tempRng = Union(tempRng, amarelosMediana)
        End If
    End If
Next amarelosMediana

mediana = Application.WorksheetFunction.Median(tempRng)
ActiveSheet.Range("C3") = "Mediana no intervalo de confianca"
ActiveSheet.Range("D3") = mediana
End Sub