Vba 查找彩色范围内的中间值

Vba 查找彩色范围内的中间值,vba,excel,excel-2010,median,Vba,Excel,Excel 2010,Median,我需要在Excel 2010 VBA代码中解决以下问题 在范围(“A:A”)中,我有很多数值。只有其中一些以彩色突出显示。(index=6[黄色])。我需要Excel VBA代码来获得黄色高亮显示值之间的中间值,并将未高亮显示的单元格保留在计算之外 我做过代码尝试,但它总是给我高亮显示范围内的第一个值,而不是该范围的中值 Dim amarelosMediana As Range Dim mediana As Double For Each amarelosMediana In Range([a

我需要在Excel 2010 VBA代码中解决以下问题

范围(“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
如您所见,我使用了stackoverflow中一些教程中所述的
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

那是因为你一次只给“中位数”一个参数(一个单元格)。哼!你是说我必须给所有的细胞。但是amarelosMediana山脉有很多细胞,不是吗?或者amarelosMediana范围作为存储范围的第一个单元格,“For Each”表示每次一个单元格。非常感谢Chrismas007花费的时间和提供的出色修复。现在,中值显示为正确值。