在颜色范围内查找中位数

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 

正如你可以看到我使用Application.WorksheetFunction.Median(amarelosMediana)在一些教程这里在stackoverflow中获取中值,但它不起作用。

有任何想法吗 ??

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

 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